lwllwlnb 2023-07-17 18:28 采纳率: 86.7%
浏览 14
已结题

关于##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;
}
 
 
  

  • 写回答

3条回答 默认 最新

  • Py小郑 新星创作者: python技术领域 2023-07-17 18:31
    关注

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

    在循环里,你首先调用了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.",这样更合理一些。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 7月25日
  • 已采纳回答 7月17日
  • 创建了问题 7月17日