我是C和编程的新手,我遇到了获得5个数字的平均值的问题。我已经尝试了我能想到的一切,我不知道为什么我没有得到除了0之外的数字。我的代码是:
#include <stdio.h>
int main (void)
{
long int first,second,third,fourth,fifth, sum;
float avg = (first+second+third+fourth+fifth)/5;
printf("Please put in five numbers\n");
scanf("%d%d%d%d%d", &first, &second, &third, &fourth, &fifth);
printf("You entered: %d %d %d %d %d\n" , first, second, third, fourth, fifth);
sum = first+second+third+fourth+fifth;
printf("The sum of the numbers you entered is %d\n",
sum);
printf("The average is %d\n", avg);
return 0;
}
答案 0 :(得分:1)
主要问题是您在获取数字之前计算平均。未初始化变量的值恰好为0,五个零的平均值也为零。
第二个问题是你将整数之和除以另一个整数。整数除法丢弃商的小数部分。
该行:
https://www.example.com/165/foo
必须在float avg = (first+second+third+fourth+fifth)/5;
之后移动,scanf
必须变为5
。结果应显示为5.0
的浮点数,而不是%f
。
答案 1 :(得分:1)
我认为问题在于你用计算平均值后给出的变量初始化平均值。尝试计算变量后的平均值,即第一,第二,第三,第四和第五。
答案 2 :(得分:1)
您的代码中存在四个问题:
avg
打印您定义为float
的{{1}},因此会导致未定义的行为。 %d
使用%d
说明符,它应long int
。 考虑到所有这些问题你的代码变成了。
%ld
提示强>
始终尝试在寻求帮助之前自己解决问题,这将使您受益更多
并且首先在纸张上准备好它在编码之前,它将减少许多错误。