| 网站首页 | 业界新闻 | 群组 | 人才 | 下载频道 | 博客 | 代码贴 | 编程论坛
共有 104 人关注过本帖
标题:编译一直说有问题,不知道哪里错了
只看楼主 收藏
dudu4443
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2018-4-11
结帖率:100%
  问题点数: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);
}


6 天前 14:28
dzy123
Rank: 5Rank: 5
等 级:职业侠客
威 望:3
帖 子:263
专家分:302
注 册:2013-4-18
  得分:0 
pingjun=sum/n;改为 pingjun=1.0*sum/n;
6 天前 18:31
yuandefeng
Rank: 3Rank: 3
等 级:论坛游侠
威 望:2
帖 子:45
专家分:158
注 册: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;
  }
6 天前 19:48







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

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