| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1197 人关注过本帖
标题:怎么限定循环输入的值范围
只看楼主 加入收藏
sleepyyuy
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2020-11-23
结帖率:33.33%
收藏
 问题点数:0 回复次数:1 
怎么限定循环输入的值范围
题目.校园歌手大赛。在校园歌手大赛中,有10个评委为参赛的选手打分,分数为1到100。选手最后得分为:去掉一个最高分和一个最低分后其余8个数的平均值。请编写一个程序实现。
新手,我不知道怎么限定这个分数值,就是想限定它在输入的10次里每次都是在1-100的范围,不然就报错提示输入的人,我这样加了while这程序就不行了

这个就是我打的
#include<stdio.h>

int main()
{
    int n[10],max,min,avg,i,sum=0;
    printf("请为选手输入1-100的打分:\n");
    while(n[i]>=1 && n[i]<=100)
    {   
        for(i=0;i<10;i++)
        {
        scanf("%d",&n[i]);
        sum+=n[i];
        max=n[0];min=n[0];
        }
    }
    for(i=0;i<10;i++)
    {
        if(n[i]>max)
        max=n[i];
        if(n[i]<min)
        min=n[i];
    }   
    avg=(sum-max-min)/8;
    printf("去掉一个最高分:%d\n去掉一个最低分:%d\n",max,min);
    printf("选手最终得分是: %d",avg);
}
搜索更多相关主题的帖子: min printf 输入 max 范围 
2021-01-02 13:58
风过无痕1989
Rank: 9Rank: 9Rank: 9
等 级:蜘蛛侠
威 望:8
帖 子:228
专家分:1050
注 册:2020-7-17
收藏
得分:0 
回复 楼主 sleepyyuy
还没打分,就进行判断,肯定是会出错的
程序代码:
#include<stdio.h>

int main()
{
    int i, n[10], max = 0, min = 100, sum = 0;
    float avg;
    printf("请为选手输入1-100的打分:\n");
    
    for (i = 0;i < 10;i++)
    {
        do   // 需要先打分,才能进行判断
            scanf("%d", &n[i]);
        while ((n[i] <= 1 || n[i] >= 100));
        sum += n[i];
        if (n[i] > max)
            max = n[i];
        if (n[i] < min)
            min = n[i];
    }

    avg = (sum - max - min) / 8;
    printf("去掉一个最高分:%d, 去掉一个最低分:%d, ", max, min);  // 此处不换行
    printf("选手最终得分是: %.2f\n", avg);                           // 此处换行
}


[此贴子已经被作者于2021-1-2 15:30编辑过]

2021-01-02 15:25
快速回复:怎么限定循环输入的值范围
数据加载中...
 
   



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

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