P1903 奖学金

P1903 奖学金(noip普及2007 No.1)

典型的结构体排序,学过结构体排序的都应该会做.

蒟蒻代码如下:

#include"stdio.h" //本人爱用c的头文件和格式;
#include"algorithm" //重要的 “算法库”;
typedef long long ll; //将long long简写为ll;
using namespace std;
const int MAXN=(int)1e6+5; //定义巨大常量;
struct stu { //存储结构体;
	int id; //学号;
	int tot,chinese; //总成绩和语文成绩;
} t[MAXN]; //定义类型为stu的一维数组t;
inline bool cmp(stu a,stu b) { //对stu类型单独↑排列;
	if(a.tot==b.tot) //如果总分相同;
		if(a.chinese==b.chinese) //则比较语文成绩;
			return a.id<b.id; //语文成绩相同,比较学号大小;
		else
			return a.chinese>b.chinese;
	else
		return a.tot>b.tot;
}
inline int read() { //快读;
	int s=0,w=1,ch;
	for(ch=getchar(); ch<'0'||ch>'9'; ch=getchar()) if(ch=='-') w=-1;
	for(; ch>='0'&&ch<='9'; ch=getchar()) s=(s<<3)+(s<<1)+(ch^48);
	return s*w;
}
int main(int argc,char**argv) {
	register int n=read(),math,english; //由于数学英语不做比较,所以只要将他们设为形参就行了;
	for(register int i=1; i<=n; ++i) {
		t[i].id=i; //写出id(学号);
		t[i].chinese=read(),math=read(),english=read()//读入各项成绩;
		t[i].tot=t[i].chinese+math+english; //计算总分;
	}
	sort(t+1,t+1+n,cmp); //☆对结构体进行排序;
	for(register int i=1; i<=5; ++i) //输出前5名;
		printf("%d %d\n",t[i].id,t[i].tot); //学号和总成绩;
	return 0; //华华丽丽地结束;
    //o╬o <-防伪标记;
}

蒟蒻终于写完题解了!(……

蒟蒻题解Day.4…
See you tomorrow

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值