首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

一道编程题,如何运行不正确

2011-11-27 
一道编程题,怎么运行不正确?publicclasswatermelon{/***有1020个西瓜,第一天卖一半多2个,以后每天卖剩下的

一道编程题,怎么运行不正确?
public   class   watermelon   {  

/**  
*   有1020个西瓜,第一天卖一半多2个,以后每天卖剩下的一半多2个,  
*   问几天以后能卖完  
*/  
public   static   void   main(String[]   args)   {  
int   x1,x2,day;  
x1=1020;  
day=0;  

while(x1==0){  
x2=x1/2-2;  
x1=x2;  
day++;}  
System.out.println( "the   day   is   "+day);  

//   TODO   Auto-generated   method   stub  

}  

}  


运行出错误~但是我怎么也看不出来,望指点!!

[解决办法]
public static void main(String[] args) {
int total = 1020;
int totalSales = 0;
int totalLeft = 1020
int days = 0;

while(totalLeft > 0){
totalSales += totalLeft/2 + 2;
totalLeft = total - totalSales;
days++;
}

System.out.println( "the day is " + day);

// TODO Auto-generated method stub

}

}
[解决办法]
你卖完那天不一定是正好x1=0,所以那样是不对的,而应该统计卖出总数大于等于1020个
[解决办法]
将while(x1==0)
改为while(x1> =0)就行了, 原因和JAVA的除法规则有关
[解决办法]
while(x1==0)

这句话的意思是当x1变量的值为0的时候才执行while循环的语句

改成将while(x1> 0)
就可以了!
[解决办法]
public class watermelon {

/**
* 有1020个西瓜,第一天卖一半多2个,以后每天卖剩下的一半多2个,
* 问几天以后能卖完
*/
public static void main(String[] args) {
int x1,x2,day;
x1=1020;
day=0;

while(x1!=0){
x2=x1/2-2;
x1=x2;
day++;}
System.out.println( "the day is "+day);

// TODO Auto-generated method stub

}

}
答案是8天
[解决办法]
楼上的这样如果把x2=x1/2-2改成x2=x1/2-3,即每天买出一半多三个程序就死了呢。

while(x1> =0){
x2=x1/2-2;
x1=x2;
day++;}

[解决办法]
不对吧!
while(x1!=0){
x2=x1-(x1/2-2);
x1=x2;
day++;}
[解决办法]
x1=0的时候已经卖完了.应该是

while(x1> 0){
x2=x1-(x1/2-2);
x1=x2;
day++;}

热点排行