小冷漠‰959 2021-12-11 11:02 采纳率: 70%
浏览 63
已结题

为什么我这个输出超限呢?

/*题目:
青年歌手大奖赛中,评委会给参赛选手打分。选手得分规则为去掉一个最高分和一个最低分,然后计算平均得分,请编程输出某选手的得分
输入 :
输入数据有多组,每组占一行,每行的第一个数是n(2<n<100),表示评委的人数,然后是n个评委的打分。
输出:
对于每组输入数据,输出选手的得分,结果保留2位小数,每组输出占一行。
样例输入复制
3 99 98 97
4 100 99 98 97
样例输出复制
98.00
98.50
*/
#include <stdio.h>

int main()
{
int a[100];
int n, i, max, min, x = 0,y = 0;
scanf("%d ",&n);
while (n != EOF)
{
float avg = 0;
for (i = 0; i < n; i++)
{
scanf("%d ", &a[i]);
}
max = a[0];
min = a[0];
for (i = 0; i < n; i++)
{
if (max < a[i])
{
max = a[i];
x = i;
}
if (min > a[i]);
{
min = a[i];
y = i;
}
}
a[x] = 0;
a[y] = 0;
for (i = 0; i < n; i++)
{
avg += a[i];
}
printf("%.2f\n", avg/(n-2));
}
return 0;
}

  • 写回答

1条回答 默认 最新

  • -Undefined_ 2021-12-11 11:21
    关注

    错误1:判断输入结束是根据scanf()的结果判断,不是n,改为while(scanf("%d",&n)!=EOF)
    错误2:scanf("%d") 这个%d后面不要跟空格
    错误3:if (min > a[i]) ; 这个后面多了个分号

    #include <stdio.h>
    
    int main() {
        int a[100];
        int n, i, max, min, x = 0, y = 0;
    
        while (scanf("%d ", &n) != EOF) {
            float avg = 0;
            for (i = 0; i < n; i++) {
                scanf("%d", &a[i]);
            }
            max = a[0];
            min = a[0];
            for (i = 0; i < n; i++) {
                if (max < a[i]) {
                    max = a[i];
                    x = i;
                }
                if (min > a[i]) {
                    min = a[i];
                    y = i;
                }
            }
            a[x] = 0;
            a[y] = 0;
            for (i = 0; i < n; i++) {
                avg += a[i];
            }
            printf("%.2f\n", avg / (n - 2));
        }
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 12月23日
  • 已采纳回答 12月15日
  • 创建了问题 12月11日

悬赏问题

  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作