{ int i,j,sum; for(i=3;i>=1;i--) { sum=0; for(j=1;j<=i;j++) sum+=i*j; } printf("%d\n",sum); }

为什么最终结果等于1?

两层循环,对于外层循环,只需要看 i=1 就行了。因为要输出的是 sum, 外层的3次循环,每次都会把 sum 赋值为0 ,所以只看第3次循环就行了。也就是 i=1,这时,内循环中, j=1, j 刚好小于等于i ,也就是1 ,所以内循环执行一次就结束了, sum 就等于 0+1*1,就是 1啦
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-09-04
void myfun()
{ int i,j,sum;
for(i=3;i>=1;i--)
{
sum=0;
for(j=1;j<=i;j++)
sum+=i*j;
}
printf("%d\n",sum);
}
对于i的循环,因为每次sum=0;所以只看i=1;
所以实际是:sum=0;sum=sum+1*1=1;

...{ sum=0; for(j=1;j<=i;j++) sum+=i*j; } printf("%d\\n",s...
两层循环,对于外层循环,只需要看 i=1 就行了。因为要输出的是 sum, 外层的3次循环,每次都会把 sum 赋值为0 ,所以只看第3次循环就行了。也就是 i=1,这时,内循环中, j=1, j 刚好小于等于i ,也就是1 ,所以内循环执行一次就结束了, sum 就等于 0+1*1,就是 1啦 ...

...{sum=0;for(j=1;j<=i;j++)sum+=i*j;}输出sum的值
int i,j,sum;for(i=3;i>=1;i--){sum=0;!!这里赋值sum=0;意味着没循环完了都要给sum重新赋值为0;最后一次循环完之后才不再进行赋值就是i=1时 for(j=1;j<=i;j++)sum+=i*j;} {int i,j,sum=0;for(i=3;i>=1;i--){for(j=1;j<=i;j++)sum+=i*j;}在外赋值能得...

...{ int i,j,sum; for(i=3;i>=1;i--) { sum=0; for(j=0;j<=i;j++...
j=3;j<=2不成立 第三步:i=1;i>=1成立 执行:sum=0;再执行第二循环,首先j=0;j<=1成立,sum=sum+i*j=0+1*0=0;j=1;j<=1成立,sum=sum+i*j=0+1*1=1;j=2;j<=1不成立 第四步:i=0;i>=1不成立,跳出循环,最后sum=1 ...

...d>=1;i--) { sum=0; for(j=1;j<=i;j++) sum+=
include <stdio.h> void main( ){ int i, j,sum;for(i=3;i>=1;i--) {sum=0; for(j=1;j<=i;j++) {sum+=i*j;}printf("%d\\n",sum);}}for循环 求3*1+3*2+3*3,的值2*1+2*2的值1*1的值 结果18,6,1

...{ for(j=1;j<=i;j++) sum+=i*j; } printf("%d\\n",sum);_百度知...
i=3时 j=1 2 3 sum是 3+6+9=18 i=2时 j=1 2 sum 是2+4=6 i=1时 j=1 sum 是1 加一起 就是25

c语言,inti,j,sum=0;for(i=1;i<=3;i++)for(j=i;j<=3;j+
sum=24 运行程序:include <stdio.h> int main(void){ int i,j,sum=0;for(i=1;i<=3;i++)for(j=i;j<=3;j++)sum=sum+i+j;printf("%d",sum);}

...{ s=0; for(j=1;j<=i;j++) s+=i*j; } printf("%d\\n",s); 运行...
for(i=3;i>=1;i--){ s=0;for(j=1;j<=i;j++)s+=i*j;} printf("%d\\n",s);前面第一重for循环不论如何,再次进入该循环的时候重置s=0,因此从i=1也就是最后一重i的for循环开始看 i=1 j=1 s=0 s+=i*j s=0+1*1=1 i=1 j=2 s=1 不符合j循环规则,跳出,此时s=1...

c++求解释为什么等于1
sum每次都重置成0了,所以只有最后一次即 i=1时sum的值才有效,此时j只能为1,所以 sum=1*1=1 include <iostream> using namespace std;void main(){ int i,j,sum=0;for (i=3;i>=1;i--){ for(j=1;j<=i;j++)sum+=i*j;} cout<<sum;} ...

...main() {int i,j,sum; sum=0; for(i=1;i<10:i++) {for(j=1;j<10...
过程都打印出来了 include<stdio.h> int main(){ int i,j,sum;sum=0;for(i=1;i<10;i++)for(j=1;j<10;j++){ sum+=i*j;printf("i*j=%d*%d ",i,j);} printf("\\nsum=%d\\n",sum);return 0;}

...这个数就称为“完数”。例如6=1+2+3.编程找出1000以内的所有完数_百 ...
#include<stdio.h> void main() { int i,j,sum=1; for(i=3;i<=1000;i++) { sum=1; for(j=2;j<i;j++) if( i%j==0) sum+=j; if(i==sum)printf("%d,",i); } } 这程序是对的。我想在输出的6 28... 展开 姐妖娆妩媚c | 浏览17778 次 |举报 我...

相似回答