C语言,结构数组

 定义结构数组,输入以下学生信息表,计算出每个学生的平均成绩,并按降序排列输出。

 

学号姓名语文数学计算机平均分
010张三608272
102李四908265
030王五867890
#include<stdio.h>
#define N 3
struct Stu
{
	char num[4];
	char name[10];
	int score[3];
	double avg;
};
void input(struct Stu s[],int n);
void sort(struct Stu s[],int n);
void output(struct Stu s[],int n);
int main()
{
	struct Stu s[N];
	input(s,N);
	sort(s,N);
	output(s,N);
	return 0;
}
void input(struct Stu s[],int n)
{
	int i;
	for(i=0;i<n;i++)
	{
		printf("请输入第%d个学生成绩:\n",i+1);
		printf("学号:");
		gets(s[i].num);
		printf("姓名:");
		gets(s[i].name);
		printf("数学 语文 计算机:");
		scanf("%d%d%d",&s[i].score[0],&s[i].score[1],&s[i].score[2]);
		s[i].avg=(s[i].score[0]+s[i].score[1]+s[i].score[2])/3.0;
		getchar();
	}
}
void output(struct Stu s[],int n)
{
	int i;
	printf("学号\t姓名\t语文\t数学\t计算机\t平均分\n");
	for(i=0;i<n;i++)
		printf("%s\t%s\t%d\t%d\t%d\t%.2f\n",s[i].num,s[i].name,s[i].score[0],s[i].score[1],s[i].score[2],s[i].avg);
}
void sort(struct Stu s[],int n)
{
	int i,j;
	struct Stu t;
	for(i=0;i<n-1;i++)
	{
		for(j=0;j<n-i-1;j++)
		{
			if(s[j].avg<s[j+1].avg)
			{
				t=s[j];
				s[j]=s[j+1];
				s[j+1]=t;
			}
		}
	}
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值