二猛


私信TA

用户名:ermeng

访问量:3131

签 名:

等  级
排  名 14059
经  验 897
参赛次数 0
文章发表 4
年  龄 20
在职情况 学生
学  校 NUDT
专  业 物理

  自我简介:

TA的其他文章

解题思路:可以定义一个结构体存储各个分数  然后是对一个结构体组的简单排序问题

注意事项:添加函数 增加代码简洁与可读性.


参考代码:

#include<iostream>

using namespace std;


struct xuesheng                    //定义结构体

{

    int xuehao;

    int yuwen;

    int shuxue;

    int yingyu;

    int zongfen;

};


void shuru(xuesheng xueshengs[],int &n);    //1 输入数据

void shuchu(xuesheng xueshengs[]);        //3 输出数据

void paixu(xuesheng xueshengs[],int n);     //2 数组排序

bool ishuan(xuesheng m,xuesheng n);          //2.1判断是否交换

void huan(xuesheng &m,xuesheng &n);          //2.2交换


int main()

{

    xuesheng xueshengs[300]= {0};

    int n;


    shuru(xueshengs,n);

    paixu(xueshengs,n);

    shuchu(xueshengs);


    return 0;

}



void shuru(xuesheng xueshengs[],int &n)

{

    cin>>n;

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

    {

        cin>>xueshengs[i].yuwen>>xueshengs[i].shuxue>>xueshengs[i].yingyu;

        xueshengs[i].zongfen=xueshengs[i].yuwen+xueshengs[i].shuxue+xueshengs[i].yingyu;

        xueshengs[i].xuehao=i+1;

    }

}


void shuchu(xuesheng xueshengs[])

{

    for(int i=0; i<5; i++)

    {

        cout<<xueshengs[i].xuehao<<' '<<xueshengs[i].zongfen<<endl;

    }

}


bool ishuan(xuesheng m,xuesheng n)

{

    if(m.zongfen<n.zongfen)

    {

        return true;

    }

    if(m.zongfen==n.zongfen && m.yuwen<n.yuwen)

    {

        return true;

    }

    if(m.zongfen==n.zongfen && m.yuwen==n.yuwen && m.xuehao>n.xuehao)

    {

        return true;

    }

    return false;

}


void huan(xuesheng &m,xuesheng &n)

{

    xuesheng t;

    t=m;

    m=n;

    n=t;

}


void paixu(xuesheng xueshengs[],int n)

{

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

    {

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

        {

            if(ishuan(xueshengs[i],xueshengs[j]))

            {

                huan(xueshengs[i],xueshengs[j]);

            }

        }

    }

}


 

0.0分

1 人评分

  评论区

  • «
  • »