我对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,五个零的平均值也为0。
第二个问题是把一个整数和除以另一个整数。整数除法丢弃商的小数部分。
台词:

float avg = (first+second+third+fourth+fifth)/5;

必须在scanf之后移动,5必须变为5.0。结果应显示为带%f的浮点数,而不是带%d的浮点数。

08-17 04:37