多了一个

程序中错误比较多:

1、是一个思维问题,猴子吃桃子会不会把一个桃子分两半来吃,你在程序中使用了实数,而不是整数,应该判断是不是能够被2整除;

2、i使用实数,也就是浮点数,而输出的时候使用的是%d的格式,所以,输出为0,可以改变格式为%f,或者将i转变成整数(printf("%d\n",(int)i);)

3、在外循环内部,改变了循环控制变量的值,也就是i的值,第一个循环下来,i的值就成了0了,所以不可能再循环,即使再循环,结果也不是要判断的i值,而是经过多次运算后的结果:1,你可以引入另外一个变量来做内循环和进行判断。

void main()

{

int j,k;

int i;

for(i=10000;i>1;i--)

{

k=i;

for(j=1;j<=10;j++)

{

if(k!=(k/2)*2) break;

k=k/2-1;

// printf("%d\n",k);

}

if(k==1) break;

}

printf("%d\n",i);

/* int i,j;

j=1;

for(i=0;i<10;i++)

j=(j+1)*2;

printf("%d\n",j);*/

}