搞不懂初始定义之类的东西

img


里面为什么让n=i;
下一步为什么for循环中让i<n;
scanf("%d",&a[i]);中a[i]是代表一个数还是一个数组,又是什么意思?

第一个for()循环结束后, i 的值就是输入的数据的个数值,比如输入了:1 2 3 4 5 -1 ,共输入了5个数据,此时 i = 5。
scanf("%d",&a[i]);中a[i]代表一个数,下标为 i 的元素,循环输入下标 i 从 0 开始递增的数组元素。
n = i ; 这里就是将 i = 5 的值赋值给 n ,经过这条语句, n = 5 , i = 5,把 i 的值记录到 n 上。
for(i=0;i<n;i++) i = 0 ;就是将 i 的值归零,i 又从零开始计数。i < n ,因为上一条语句 n = i , 所以 n = 5, i < n = 5 。

a是一维数组,a[i]是数组的第i个元素。第一个循环的意思是依次输入数组元素,直到输入的数是负数为止。第一个循环结束后,i的值就是输入的数组元素的个数。第二个循环的意思是把数组里的所有元素加起来求和。