小皮的烦恼

本文展示了一段C++代码,该代码用于帮助小皮在信息课上根据输入的学生信息,按总分从高到低进行排序并输出排名、姓名、学号、各科成绩。这个程序可以处理不超过100个学生的数据,每个学生包含姓名、学号以及语文、数学、英语三门科目的成绩。
摘要由CSDN通过智能技术生成

今天是信息课,小皮正在电脑上玩MC。可是电脑忽然关机了。回头一看,老师那愤怒的眼神注视着小皮。老师把小皮叫道讲台上,说,你只要帮我把这次期中考试的成绩统计出来,我就放了你。否则,你懂的。

请你编写一个程序,帮帮小皮吧

输入

第一行 是学生个数n,0<n<100

往下n行是每个学生的信息,第一个是名称,第二个是学号,第三个是语文成绩,第四个是数学成绩,第五个是英语成绩。每个信息以空格隔开,每个学生以换行隔开。

输出

按照从大到小分别输出学生排名,名称,学号,总分,语文成绩,数学成绩,英语成绩。

输入样例

3

小皮 1 99 100 100

小红 2 100 100 100

小明 3 0 0 0

输出样例

1:小红 2 总分:300 语文:100 数学:100 英语:100

2:小皮 1 总分:299 语文:99 数学:100 英语:100

3:小明 3 总分:0 语文:0 数学:0 英语:0

以下是我的代码

#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
struct student
{
	int score;//总分 
	string name;//名称 
	int student_number;//学号 
	int chinese;//语文成绩 
	int math;//数学成绩 
	int english;//英语成绩 
};
bool cmp(student x,student y)//用于比较结构体 
{
 return x.score>y.score;   
}
int main()
{
	student a[100];
	int b;
	cin>>b;
	for(int i=0;i<b;i++)
	{
		cin>>a[i].name>>a[i].student_number>>a[i].chinese>>a[i].math>>a[i].english;
	}
	for(int i=0;i<b;i++)
	{
		a[i].score=a[i].chinese+a[i].math+a[i].english;//总分 
	}
	sort(a,a+b,cmp);
	for(int i=0;i<(b-1);i++)
	{
		cout<<(i+1)<<":"<<a[i].name<<" "<<a[i].student_number<<" 总分:"<<a[i].score<<" 语文:"<<a[i].chinese<<" 数学:"<<a[i].math<<" 英语:"<<a[i].english<<"\n";
	}
	cout<<b<<":"<<a[b-1].name<<" "<<a[b-1].student_number<<" 总分:"<<a[b-1].score<<" 语文:"<<a[b-1].chinese<<" 数学:"<<a[b-1].math<<" 英语:"<<a[b-1].english;//处理多输出的换行符 
	return 0;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值