c语言基础问题求解。

img


为什么结果是1不是7,麻烦各位解答,有计算过程的那种,初学者不太理解,感谢~

代码执行顺序如下:
i=3 ,j=1, sum=0
i=3 ,j=1, sum=3
i=3 ,j=2, sum=9
i=3 ,j=3, sum=18

i=2 ,j=1, sum=0
i=2 ,j=1, sum=2
i=2 ,j=2, sum=6

i=1 ,j=1, sum=0
i=1 ,j=1, sum=1
1

img

img


#include<stdio.h>
int main()
{
    int i,j,sum;
    for(i=3;i>=1;i--)
    {
        sum=0;
        for(j=1;j<=i;j++)
        {
          sum+=i*j;
          printf("sum加上了%d乘%d,现结果为%d\n",i,j,sum);
        }
    }
    printf("%d",sum);
    return 0;
}

??这有问题吧

这个sum在for循环内被赋值,所以每一次i的循环都会使sum被重置为0,所以只需要计算最后一次,也就是i=1,与之对应的j=1,所以sum=0+1✖️1=1


可以查看手册:c语言-exp() 中的内容