C语言程序,如下要求。

定义一个学生信息结构体,包含姓名,3门课程成绩,性别和出生年月(出生年月为年、月、日为成员的结构体),声明一个结构体数组,包含5个元素,从键盘输入数据,找出总分最大的一个学生,并输出他的信息,将全班按照总分升序排列(选择法),并输出排序前后的信息,要求输入、输出、查找和排序使用函数实现。

建议自行设计源码。

然后发生解决不了的问题再求助。

参考一下:

/* Note:Your choice is C IDE */
#include "stdio.h"

#define N 2
struct Student
{
	//学号
	int		num; //成员变量或者一个数据项
	//姓名
	char	name[20];
	//性别
	char	sex; //M,F
	//成绩
	float	html;	
	float	ppt;
	float	cyuyan;
	float	sum;
}st[N];
void input();
void display();
void main()
{
    input();
    display();
}
//输入函数
void input()
{
	int i;
	for(i=0;i<N;i++)
	{
		printf("请输入第%d个学生的学号,姓名,性别,html,ppt,cyuyan:",i+1);
		scanf("%d",&st[i].num);
		scanf("%s ",st[i].name);
		scanf("%c ",&st[i].sex);
		scanf("%f",&st[i].html);
		scanf("%f",&st[i].ppt);
		scanf("%f",&st[i].cyuyan);
		st[i].sum = st[i].html+st[i].ppt+st[i].cyuyan;
	}
		
}
//输出
void display()
{
	int i;
	printf("学号\t姓名\t\t性别\thtml\tppt\tC语言\t总分\t平均分\n");	
	for(i=0;i<N;i++)
	{
		printf("%d\t%s\t%c\t%0.2f\t%0.2f\t%0.2f\t%0.2f\t%0.2f\n",st[i].num,st[i].name,st[i].sex,st[i].html,st[i].ppt,st[i].cyuyan,st[i].sum,st[i].sum/3);
	}	
}

 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^