1163028233 发表于 2020-12-15 23:06:59

算平均数

#include<stdio.h>
int main()
{
        int sum = 0 , count = 0 , number;

        scanf ( "%d", &number );
        while ( number != -1 )
        {
                sum += number;
                count++;
      scanf ( "%d", &number );
                }

printf ( "%d\n", sum / count );

return 0;
}

求问我这个程序哪里出错了,在终端输入整型,没有反应是什么情况

昨非 发表于 2020-12-15 23:09:19

死循环了
以-1输入作结尾就好了

风过无痕1989 发表于 2020-12-15 23:18:49

你的程序没有问题,你检查一下你的编译器。输出语句帮你改了一下,效果会好一点
#include<stdio.h>
int main()
{
        int sum = 0, count = 0, number;

        scanf("%d", &number);
        while (number != -1)
        {
                sum += number;
                count++;
                scanf("%d", &number);
        }

        printf("%f\n", (float)sum / (float)count);

        return 0;
}

1163028233 发表于 2020-12-16 17:52:33

风过无痕1989 发表于 2020-12-15 23:18
你的程序没有问题,你检查一下你的编译器。输出语句帮你改了一下,效果会好一点

你好,我想问下为什么我输入数字没反应?

风过无痕1989 发表于 2020-12-16 17:56:25

本帖最后由 风过无痕1989 于 2020-12-16 17:59 编辑

1163028233 发表于 2020-12-16 17:52
你好,我想问下为什么我输入数字没反应?

你是怎么输的?
1 2 3 4 5 6 7 8 9-1回车,再试试

风过无痕1989 发表于 2020-12-16 18:12:09

本帖最后由 风过无痕1989 于 2020-12-16 18:22 编辑

1163028233 发表于 2020-12-16 17:52
你好,我想问下为什么我输入数字没反应?

程序要改的话,这么改,可以增加一个变量 k,让它等于0(赋初值,除 -1 之外的任何值都可以,确保循环能进行),这样就一定要给 number 赋初值 0 ,否则就会影响计算结果,去掉一个 scanf()
#include<stdio.h>
int main()
{
        int k = 0, sum = 0, count = 0, number = 0;

        while (k != -1)
        {
                scanf("%d", &number);
                sum += number;
                count++;
                k = number;
        }
      sum += 1;   // 因为加了一个 -1
        count -= 1;   // 因为 -1 而多执行了一次循环
        printf("%f\n", (float)sum / (float)count);

        return 0;
}
页: [1]
查看完整版本: 算平均数