问题标题: 酷町堂:1487酷町堂教务管理系统2 我为什么不对?

0
0
已解决
梁彦博
梁彦博
初级光能
初级光能
#include <iostream>
#include <algorithm>
#include <cstdio>
using namespace std;
struct cj
{
    string name;
    int age,f1,f2,f3,f4;
    int zong()
    {
        return f1+f2+f3+f4;
    }
}a[100020];
bool cmp(cj a,cj b)
{
    if(a.zong()==b.zong()) return a.name<b.name;
    return a.zong()>b.zong();
}
int main()
{
    int n,m;
    cin>>n;
    for(int i=1;i<=n;i++)cin>>a[i].name>>a[i].age>>a[i].f1>>a[i].f2>>a[i].f3>>a[i].f4;
    sort(a+1,a+n+1,cmp);
    for(int i=1;i<=n;i++)cout<<i<<" "<<a[i].name<<" "<<a[i].zong()<<endl;
    return 0;
}

RT

以上我错的代码


0
已采纳
栾峻岩
栾峻岩
初级天翼
初级天翼
int zong()
{
    return f1+f2+f3+f4;
}

不要在结构体里用函数,要求总分可以这么定义:

1、结构体里加一个变量,记录这个人的总分。

2、怎么算总分。

在输入的循环里加入这句话:(我把总分定义为score)。

a[i].score=a[i].a+a[i].b+a[i].c+a[i].d;    

 

那么cmp函数也要改了。

改成a.score和b.score比较大小。

 

输出的a[i].zong()也要改成a[i].score.

 

最好加上头文件:#include <string>

栾峻岩在2018-08-08 14:41:33追加了内容

0
我要回答