#include <stdio.h>
#include <stdlib.h>
int main()
{int array1[10],i=0,sum=0;
while(i<10)
{scanf("%d",&array1[i]);
i=i+1;
}
while(i<10)
{sum=sum+array1[i];i=i+1;
}
printf("sum =%d",sum);
return 0;
}
代码编译得很好但是在运行它时不会产生任何结果,它总是打印0。
答案 0 :(得分:3)
问题出在第二个循环中。在进入i
循环体时,检查while
的值。
您需要重置
i
的值。否则,第二个循环不会执行。执行第一个循环后,i
保持值10
,除非更改,否则第二个while
循环条件的计算结果为false,因此循环体不会执行,只留下{{ 1}}到它的初始化值。
那就是说,
sum
最好为int main()
。int main(void)
的返回值是否成功。答案 1 :(得分:0)
在第一次循环后初始化i = 0。在第一个循环结束时,i的值为10,因此它不会进入第二个循环。因此打印0.
#include <stdio.h>
#include <stdlib.h>
int main()
{
int array1[10],i=0,sum=0;
while(i<10)
{
scanf("%d",&array1[i]);
i=i+1;
}
i=0; // Notice this line
while(i<10)
{
sum=sum+array1[i];i=i+1;
}
printf("sum =%d",sum);
return 0;
}
答案 2 :(得分:0)
在第二个循环中,变量i未初始化为0。
#include <stdio.h>
#include <stdlib.h>
int main()
{int array1[10],i=0,sum=0;
while(i<10)
{scanf("%d",&array1[i]);
i=i+1;
}
/*After the execution of 1st while loop i has 10 in it, that needs to be set to 0 for next loop execution, for this use case.
If it is not mandatory to use while loop, try with **for loop**, it is far simple for this use case. */
for( i=0; i<10; i++) //while( i<10)
{sum=sum+array1[i];//i=i+1;
}
printf("sum =%d",sum);
return 0;
}
另外还有一个循环,这使您的代码更简单
int main()
{int array1[10],i,sum=0;
for( i=0; i<10; i++){
scanf("%d",&array1[i]);
sum=sum+array1[i];
}
printf("sum =%d",sum);
return 0;
}