C++题目求解

 我来答
小黑哎啊
科技发烧友

2020-03-22 · 智能家居/数码/手机/智能家电产品都懂点
知道大有可为答主
回答量:1642
采纳率:74%
帮助的人:349万
展开全部

#include<iostream>

#include<string.h>

using namespace std;

struct st{//定义一个结构体 

char name[11];//依次姓名,4科成绩; 

int a;

int b;

int c;

int d;

};

int main()

{

struct st s[50];//定义一个结构体数组; 

int n,z[111],k=0,t;

char h[11];

cin>>n;

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

{

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

z[k++]=s[i].a+s[i].b+s[i].c+s[i].d;//4科成绩的和赋给数组z 

}

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

{

for(int j=0;j<k-i-1;j++)

{

if(z[j]<z[j+1])

{

t=z[j];//总成绩交换,下面名字也交换; 

z[j]=z[j+1];

z[j+1]=t;

strcpy(h,s[j].name);

strcpy(s[j].name,s[j+1].name);

strcpy(s[j+1].name,h);

}

}

}

for(int i=0;i<3;i++)//输出前三个名字; 

{

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

}

return 0;

}

希望能帮到你,望采纳;

匿名用户
2020-03-22
展开全部

#include <iostream>

#include <algorithm>

using namespace std;

struct transcript {

char name[11];

int Math, Chinese, English, Geography, sum;

} s[40];


bool cmp(transcript a, transcript b) {

return a.sum > b.sum;

}


int main() {

int N;

cin >> N;

for (int i = 0; i < N; i++) {

cin >> s[i].name >> s[i].Math >> s[i].Chinese >> s[i].English >> s[i].Geography;

s[i].sum = s[i].Math + s[i].Chinese + s[i].English + s[i].Geography;

}

sort(s, s + N, cmp);

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

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

return 0;

}

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式