多了一个
程序中错误比较多:
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);*/
}