这个程序为什么输出值cnt和sum都是0?急求答案~!

来源:百度知道 编辑:UC知道 时间:2024/05/30 18:17:48
#include <iostream.h>
void main()
{
int i=100,j=1000,cnt=0,sum=0,a,b;
while(1)
{
while(1)
{

if(i+i+i==j+j)
{
b=j%10;
a=(j%100-b)/10;
if(a==0)
{
j++;
break;
}
cnt++;
sum+=i+j;
cout<<"i="<<i<<" "<<"j="<<j<<endl;
cout<<cnt<<endl;
cout<<sum<<endl;
}
j++;
if(j>9999) break;
}
i++;
if(i>999) break;
}
cout<<"cnt="<<cnt<<endl;
cout<<"sum="<<sum<<endl;

}

if(i+i+i=j+j)语句执行的条件是3*i=2*j
在if语句第一次该执行之前,i和j的值都自加1,
根据以上两条件解出该if语句执行条件为i=1800,j=2700,循环共进行了1700次,
if语句执行后,b=j%10=2700%10=0
a=(j%100-b)/10=0
紧接着if(a==0)执行,由于break跳出了循环,因此无法为cnt和sum赋值,所以都为0.