回复 9楼 wp231957
仅仅8个数我也能猜出来,逐个计算也能算出来,但是我想弄明白其中的原理,就是原代码中红色字体部分。
回复 10楼 zbjzbj
那么,为什么sum[i]+=num[j];是正确的,而sum[j]+=num[i]就不行呢?
#include <stdio.h> int main(void) { int num[5]={1,2,3,4,5}; int sum[5]={0}; int i,j; for(i=0;i<5;i++) { for(j=0;j<=i;j++) { sum[i]+=num[j]; printf("sum[%d] =%2d \n",i,sum[i]); } printf("第 %d 重外循环结束\n" ,i+1 ); } return 0; } /* sum[0] = 1 第 1 重外循环结束 sum[1] = 1 sum[1] = 3 第 2 重外循环结束 sum[2] = 1 sum[2] = 3 sum[2] = 6 第 3 重外循环结束 sum[3] = 1 sum[3] = 3 sum[3] = 6 sum[3] =10 第 4 重外循环结束 sum[4] = 1 sum[4] = 3 sum[4] = 6 sum[4] =10 sum[4] =15 第 5 重外循环结束 */ #include <stdio.h> int main(void) { int num[5]={1,2,3,4,5}; int sum[5]={0}; int i,j; for(i=0;i<5;i++) { for(j=0;j<=i;j++) { sum[j]+=num[i]; printf("sum[%d] =%2d \n",j,sum[j]); } printf("第 %d 重外循环结束\n" ,i+1 ); } return 0; } /* sum[0] = 1 第 1 重外循环结束 sum[0] = 3 sum[1] = 2 第 2 重外循环结束 sum[0] = 6 sum[1] = 5 sum[2] = 3 第 3 重外循环结束 sum[0] =10 sum[1] = 9 sum[2] = 7 sum[3] = 4 第 4 重外循环结束 sum[0] =15 sum[1] =14 sum[2] =12 sum[3] = 9 sum[4] = 5 第 5 重外循环结束 */自己看看先