谁给我解析一下下面的代码for(j=0,sum[i]=0;j<=i;j++)中为什么j<=i 而不是j<SIZE呢?
/*编写一个程序?创建两个8元素的double数组?使用一个循环来让用户键入第一个数组的8个元素的值。程序把第二个数组的元素设置为第一个数组元素的累积和。例如?第
二个数组的第4个元素应该等于第一个数组的前4个元素的和?第二个数组的第5个元素应
该等于第一个数组的前5个元素的和?使用嵌套循环可以做到这一点。不过利用第二个数组
的第5个元素等于第二个数组的第4个元素加上第一个数组的第5个元素这一事实?可以避
免嵌套而只使用单个循环来完成这个任务?。最后?使用一个循环来显示两个数组中的内容?
第一个数组在一行中显示?而第二个数组中的每个元素在第一个数组的对应元素之下进行显
示。*/
#include<stdio.h>
#include<stdlib.h>
#define SIZE 8
int main(void)
{
double num[SIZE],sum[SIZE];
int i,j;
printf("Ente %d numbers:",SIZE);
for(i=0;i<SIZE;i++)
{
scanf("%lf",&num[i]); //输入数据给数组num的元素赋值
for(j=0,sum[i]=0;j<=i;j++) //为什么j<=i ?
sum[i] += num[j]; //给数组sum的所有元素赋值
}
for(i=0;i<SIZE;i++)
printf("%-8.2lf",num[i]); //打印数组num的所有元素
printf("\n");
for(i=0;i<SIZE;i++)
printf("%-8.2lf",sum[i]); //打印数组sum的所有元素
printf("\n");
system("pause");
return(0);
}
[此贴子已经被作者于2017-2-2 18:28编辑过]