算平均数
#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;
}
求问我这个程序哪里出错了,在终端输入整型,没有反应是什么情况 死循环了
以-1输入作结尾就好了 你的程序没有问题,你检查一下你的编译器。输出语句帮你改了一下,效果会好一点
#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;
} 风过无痕1989 发表于 2020-12-15 23:18
你的程序没有问题,你检查一下你的编译器。输出语句帮你改了一下,效果会好一点
你好,我想问下为什么我输入数字没反应? 本帖最后由 风过无痕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: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]