C/C++ 结构体(按学生总分排序)

题目描述

定义学生结构体,包括学号、及三门功课的成绩和总分,按照总分从小到大输出学生学号与总分。

输入

输入包含n(n<20)个学生的信息, 第1行学生人数。

第2行--第n+1行为学生信息,包括学号、及三门功课的成绩。

输出

从小到大输出学生学号与总分。

样例输入

3
1001 70 80 90
1002 60 70 80
1003 80 90 90

样例输出

1002 210
1001 240
1003 260
#include<stdio.h>
struct stur
{
	int num;
	int fs1;
	int fs2;
	int fs3;
	int zf;
}per[20];
void main()
{
	int n,p,i,j;
		struct stur t;
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		scanf("%d",&per[i].num);
		scanf("%d",&per[i].fs1);
		scanf("%d",&per[i].fs2);
		scanf("%d",&per[i].fs3);
	}
	for(i=0;i<n;i++)
	  per[i].zf=per[i].fs1+per[i].fs2+per[i].fs3;
	for(i=0;i<n;i++)
	{
		p=i;
			for(j=i+1;j<n;j++)
			    if(per[j].zf<per[p].zf)
					p=j;
				if(i!=p)
				{t=per[i];per[i]=per[p];per[p]=t;}
				printf("%d %d\n",per[i].num,per[i].zf);
	}
}

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值