我想应用一个 while 循环并编写了 while (a!=-1)
;它应该退出,但总是打印“0”,我不知道为什么。你能解释一下吗?
#include <stdio.h>
int main()
{
long num;
int a,i,j;
int arr[10000];
float x;
while( a != -1)
{
scanf("%d",&a);
int sum=0;
for(i=0;i<a;i++)
{
scanf("%d",&arr[i]);
sum = sum + arr[i];
}
x = sum%a;
if (x == 0)
{
int z = sum/a;
int y=0;
for(j=0;j<a;j++)
{
if (arr[j]>z)
{
y = (arr[j] - z) + y ;
}
}
printf("%d",y);
}
else
printf("-1");
}
}
我认为它正在打印y
;如何避免使其仅退出?
最佳答案
首先,您在运行 while 循环之前未能初始化 a
,因此程序的行为将是未定义的,并且可能会立即终止。
其次,您在问题中说了“while(a!=0)”,但您的代码却说“while(a!= -1)”。哪一个是正确的:0 或 -1?也许如果您只是将 -1 更改为 0,程序就会按预期运行。
关于c++ - 在 while 循环中打印零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9661883/