问题标题: 酷町堂:5517帮忙看看怎么错了0分

0
0
葛新月
葛新月
新手守护
新手守护

#include<iostream>

#include<cstdio>

#include<string> #include<algorithm>

using namespace std;

struct P{

string name;

int a,b,c,d,a1;

}x[10005];

bool cmp(P e,P y){

return double(e.a1>y.a1);

}

int main(){

int n;

cin>>n;

for(int i=1;i<=n;i++){

cin>>x[i].name>>x[i].a>>x[i].b>>x[i].c>>x[i].d;

x[i].a1=(x[i].a+x[i].b+x[i].c+x[i].d)/4;

}

sort(x+1,x+n+1,cmp);

for(int i=1;i<=n;i++){

cout<<x[i].name<<endl;

}

return 0;

}


0
汪恺恒
汪恺恒
中级启示者
中级启示者

a1要定义成double类型的

0
汪恺恒
汪恺恒
中级启示者
中级启示者

a1的赋值:(a[i].a+a[i].b+a[i].c+a[i].d)/4.0

0
朱优扬
朱优扬
中级天翼
中级天翼

看不懂你的思路;

看看我的:

结构体:

string zk;
int s1,s2,s3,s4,id;
double sum(){
    return (s1+s2+s3+s4)/4.0;   
}    

  cmp:

    

if(x.sum()!=y.sum())
    return x.sum()>y.sum();
return x.id<y.id;

主函数:

    输入n;

    for(int i=1;i<=n;i++){

        cin>>a[i].zk>>a[i].s1>>a[i].s2>>a[i].s3>>a[i].s4;

         a[i].id=i;

     }

    排序

    for(int i=1;i<=n;i++)

        cout<<a[i].zk<<endl;

0
朱优扬
朱优扬
中级天翼
中级天翼

看不懂你的思路;

看看我的:

结构体:

string zk;
int s1,s2,s3,s4,id;
double sum(){
    return (s1+s2+s3+s4)/4.0;   
}    

  cmp:

    

if(x.sum()!=y.sum())
    return x.sum()>y.sum();
return x.id<y.id;

主函数:

    输入n;

    for(int i=1;i<=n;i++){

        cin>>a[i].zk>>a[i].s1>>a[i].s2>>a[i].s3>>a[i].s4;

         a[i].id=i;

     }

    排序

    for(int i=1;i<=n;i++)

        cout<<a[i].zk<<endl;

0
0
我要回答