求助 为什么我这个输入超过九个分数 就会出现异常

P5726 【深基4.习9】打分

xiaopang666 @ 2023-08-08 20:24:20

#include<stdio.h>
int main()
{
    int n,i,j,t;
    float a,sum=0;
    scanf("%d",&n);
    int b[n];
    for(i=0;i<n;i++)
        scanf("%d",&b[i]);
    for(j=0;j<n;j++) 
        for(i=0;i<n;i++)
        {
            if(b[i]<b[i+1])
              { t=b[i];
                b[i]=b[i+1];
                b[i+1]=t;
                          } }     
    for(i=0;i<n;i++)
       sum+=b[i];
       sum=sum-b[0]-b[n-1];
       a=sum/(n-2);
       printf("%.2f",a);
       return 0;
}//10  8 3 9 9 6 6 10 8 5 8 7.38

by wbhqm @ 2023-08-10 08:42:04

@xiaopang666 不需要排序,在输入里找最大最小值,用总值去除n-2即可


by wbhqm @ 2023-08-10 08:57:09

@xiaopang666

#include<iostream>
#include<cmath>
#include<iomanip>
using namespace std;
int main()
{
    int n,i,min_fs=11/*最小值设最大*/,max_fs/*最大值设最小*/;
    int he=0,t;
    cin>>n;
    for(i=0;i<n;i++)
    {
        scanf("%d",&t);
        he+=t;
        min_fs=min(min_fs,t);
        max_fs=max(max_fs,t);
    }
    cout<<fixed<<setprecision(2)<<(he-min_fs-max_fs)*1.0/(n-2);
    return 0;
}

我不太会用scanf和printf,AC代码,能给你提供点帮助


|