c++ - 在 while 循环中打印零

标签 c++ c

我想应用一个 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/

相关文章:

c - 如何在循环内增加 while 循环的计数器?

c++ - 为什么 C 库函数似乎作为指向函数的指针出现在任何 C++ 代码中?

C++在自定义线程中创建cef对象

c - 使用链表合并两个排序列表

python - cython:使用 numpy.ctypeslib.ndpointer 将 float 组转换为 python 数组

c - 在C中获取字符串的一个特定标记

当我使用 fscanf 时核心转储

c++ - 销毁并重新创建对象是否会使指向该对象的所有指针都无效?

c++ - 使用 OnComponentHit UE4 C++ 进行碰撞检测

c++ - 复制非矩形 roi opencv