关于##include#的问题,如何解决?

求平均值,这样写为什么不对?

#include <stdio.h> 
int main()
{    
  int sum=0;
  int number;
  int count=0;
  scanf("%d", &number);
  while(number!=-1){
      scanf("%d", &number);
      sum+=number;
      count++;
  }
  printf("%d %f\n",count,1.0*sum/count);
    return 0;
}
 
 
  

这个程序代码的问题出在循环读取数字和处理数字的顺序上。

在循环里,你首先调用了scanf函数来读取一个数字,然后将这个数字添加到总和里,然后增加计数。这是在你首次读取数字后立即开始循环,而不是首先处理首次读取的数字,这会导致第一个输入的数没有被加到总和里。

所以,你可以把scanf放到循环的最后,先处理数字,然后再读取新的数字。修改后的代码如下:

#include <stdio.h>

int main()
{
    int sum = 0;
    int number;
    int count = 0;

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

    if(count > 0) 
    {
        printf("%d %f\n", count, 1.0 * sum / count);
    }
    else 
    {
        printf("No input numbers.\n");
    }
    return 0;
}

这里,我还添加了一个检查,用于确保count大于0,以避免除以零的错误。当没有输入任何数(即第一个输入就是-1)时,程序会输出"No input numbers.",这样更合理一些。

你输完数1,判断完数1又输数2,再加数2,怎么可能对