标题:编译一直说有问题,不知道哪里错了
只看楼主
dudu4443
Rank: 1
等 级:新手上路
帖 子:9
专家分:0
注 册:2018-4-11
结帖率:50%
 问题点数:0 回复次数:2 
编译一直说有问题,不知道哪里错了
#include<stdio.h>
void main()
{
    int max,min,m,sum,n;
    float pingjun;
    n=0;
    sum=0;
    max=0;
    min=101;
    do
    {
        scanf("%d",&m);
        if(m>max)
            max=m;
        if(m<min)
            min=m;
        sum=sum+m;
        n=n+1;
     }
    while(scanf("-1\n"));---------------------------------------------------把这个改成while(m!=-1);还是显示是错的
    pingjun=sum/n;
    printf("最大值为%d,最小值为%d,平均值为%lf,共输入%d个学生成绩\n",max,min,pingjun,n);
}


搜索更多相关主题的帖子: 编译 max min sum scanf 
2018-04-15 14:28
dzy123
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:379
专家分:820
注 册:2013-4-18
得分:0 
pingjun=sum/n;改为 pingjun=1.0*sum/n;
2018-04-15 18:31
yuandefeng
Rank: 4
等 级:业余侠客
威 望:3
帖 子:51
专家分:216
注 册:2017-11-28
得分:0 
用do-while感觉不妥,要先判断接收的数据符不符合要求,才能进入循环。
供参考。
程序代码:
 #include<stdio.h>
  int main(void)
  {
       int max,min,m,sum,n;
       float pingjun;
       n=0;
       sum=0;
       max=0;
       min=101;
      printf("请输入学生的成绩(输入‘q’,将结束输入。)\n");
      while(scanf("%d",&m) == 1)
      {
          if(m < 0 || m > 100)
          {
              printf("输入有误,重新输入。\n");
              continue;
          }
          else
          {
              if(m>max)
                  max=m;
              if(m<min)
                  min=m;
              sum=sum+m;
              n=n+1;
          }
      }
      pingjun=(float)sum/n;
      printf("最大值为%d,最小值为%d,平均值为%.2f,共输入%d个学生成绩\n",max,min,pingjun,n);
      return 0;
  }
2018-04-15 19:48



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-486076-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.467146 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved