这题用c咋写啊大佬们做出来的能发发么。

回复帖子

@玩玩就好7744  2020-11-19 21:14 回复 举报
#include<stdio.h>

int main()
{
    int n , m;
    scanf("%d%d" , &n , &m);
    double ans = 0;
    for(int i = 1 ; i <= n ; i++)
    {
        double count = 0;
        int maxx = -1;
        int minn = 11;
        for(int j = 1 ; j <= m ; j++)
        {
            int c;
            scanf("%d" , &c);
            if(maxx < c)
            {
                maxx = c;
            }
            if(minn > c)
            {
                minn = c;
            }
            count += c;
        }
        count -= maxx + minn;
        if(count > ans)
        {
            ans = count;
        }
    }
    printf("%.2lf",ans/(m - 2));
    return 0;
}
@玩玩就好7744  2020-11-19 21:15 回复 举报

当前的总分是所有输入的数据加起来的和减去最大值和最小值。

要使答案最大就需要保证总值最大

之后输出就好了

而且这样也保证了不会出现精度问题

@wangyangm 2020-12-12 17:28 回复 举报
#include<stdio.h>
int main()
{
    void sort(int m,int n,int a[100][100]);
    int m,n,a[100][100];
    double t;
    scanf("%d %d",&m,&n);
    int i,j;
    for(i=0;i<m;i++)
        for(j=0;j<n;j++)
        scanf("%d",&a[i][j]);
        sort(m,n,a);
    return 0;

}
void sort(int m,int n,int a[100][100])
{
    double max(int m,double b[100]);
    int f,k;
    double b[100]={0},c;
    int i,j;
    for(i=0;i<m;i++){
        f=k=a[i][0];
        for(j=0;j<n;j++){
            if(f<a[i][j])
            f=a[i][j];
            else if(k>a[i][j])
            k=a[i][j];
            b[i]+=a[i][j];
        }
        if(n<=2)
        b[i]=b[i]/n;
        else
        b[i]=(b[i]-f-k)/(n-2);
    }
    c=max(m,b);
    printf("%.2f",c);
}
double max(int m,double b[100])
{
    int i;
    double d;
    d=0;
    for(i=0;i<m;i++){
        if(d<b[i])
        d=b[i];
    }
    return(d);
}

只会c的脆弱萌新

@GengarZx 2020-12-22 17:31 回复 举报
#include<stdio.h>
struct stu
{
    int score[20];
}stu[100];
int main()
{
    int n,m,i,j,sum=0;
    float max=0,min=10;
    float s[20];
    scanf("%d%d",&n,&m);
    for(i=0;i<n;i++)
    {
        for(j=0;j<m;j++)
        {
            scanf("%d",&stu[i].score[j]);
        }
        printf("\n");
    }
    for(i=0;i<n;i++)
    {
        for(j=0;j<m;j++)
        {
            if(stu[i].score[j]>max)
            {
                max=stu[i].score[j];
            }
            if(stu[i].score[j]<min)
            {
                min=stu[i].score[j];
            }
            sum+=stu[i].score[j];
        }
        s[i]=(sum-max-min)/(m-2);
        sum=0;
    }
    max=0;
    for(i=0;i<n;i++)
    {
        if(s[i]>max)
            max=s[i];
    }
    printf("%0.2f",max);
}
反馈
如果你认为某个帖子有问题,欢迎向洛谷反馈,以帮助更多的同学。



请具体说明理由,以增加反馈的可信度。