我想应用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
;如何避免它只退出?
答案 0 :(得分:3)
首先,在运行while循环之前未能初始化a
,因此程序的行为将是未定义的,它可能会立即终止。
其次,你在问题中说“while(a!= 0)”但你的代码却说“while(a!= -1)”。哪一个是正确的:0还是-1?也许如果您只是将-1更改为0,程序将按预期运行。
答案 1 :(得分:0)
您想写while( a != 0)
,但实际上您已写过while( a != -1)
。
解决这个问题。然后,当您输入0
时,循环将退出。
答案 2 :(得分:-1)
我得到了我的回答,实际上我必须在我的scanf("%d",&a);
外面循环;