定义一个学生信息结构体,包含姓名,学号,语文成绩、数学成绩,和英语成绩,、定义结构体数组存放不同学生的信息,可以在终端录入学生的信息,可以实现对于学生成绩的排序,排序可以按照语文、数学或者英语的任

代码如下:

/*定义一个学生信息结构体,包含姓名,学号,语文成绩、数学成绩,和英语成绩,、
定义结构体数组存放不同学生的信息,可以在终端录入学生的信息,
可以实现对于学生成绩的排序,排序可以按照语文、数学或者英语的任意一个*/

#include<stdio.h>
#include<string.h>

struct chx{
	char name[128];
	int sno ;
	int chinese;
	int math;
	int english
}chx[99];
 
int main()
{	
    
	int a =0 ;
	int aa = 0;
	int az = 0;
	char t[120];
	while(1){
		struct chx temp = {NULL};
		printf("选择服务\n1.录入学生信息\n2.按照语文排序\n3.按照数学排序\n4.按照英语排序\n5.打印输出\n0.退出\n");
		scanf("%d",&a);
		
		switch(a){				
			case 1:{
				printf("输入学生录入个数\n");
				scanf("%d",&aa);
				for(int i=0;i<aa;i++){
					printf("输入第%d个学生的学号\n",i+1);
					scanf("%d",&az);
					chx[i].sno = az;
					printf("输入第%d个学生的姓名\n",i+1);
					//char ch[100] ;
					gets(chx[i].name);
					gets(chx[i].name);
					printf("输入第%d个学生的语文成绩\n",i+1);
					scanf("%d",&az);
					chx[i].chinese = az;
					printf("输入第%d个学生的数学成绩\n",i+1);
					scanf("%d",&az);
					chx[i].math = az;
					printf("输入第%d个学生的英语成绩\n",i+1);
					scanf("%d",&az);
					chx[i].english = az;		
				}
				break; 
			} 
			case 2:{
				for(int i=0;i<aa;i++){
					for(int j=0;j<aa;j++){
						if(chx[j].chinese<chx[j+1].chinese){
							temp.sno  = chx[j].sno;
							chx[j].sno = chx[j+1].sno;
							chx[j+1].sno = temp.sno;
							
							strcpy(temp.name,chx[j+1].name );
							strcpy(chx[j+1].name,chx[j].name );
							strcpy(chx[j].name,temp.name );
							
							
							temp.chinese  = chx[j].chinese;
							chx[j].chinese = chx[j+1].chinese;
							chx[j+1].chinese = temp.chinese;
							
							
							temp.math  = chx[j].math;
							chx[j].math = chx[j+1].math;
							chx[j+1].math = temp.math;
							
							
							temp.english  = chx[j].english;
							chx[j].english = chx[j+1].english;
							chx[j+1].english = temp.english;
							
						/*	printf("第%d个学生的学号是%d    姓名是%s    语文成绩是%d  数学成绩是%d   英语成绩是%d\n",
															j+1,chx[j].sno,chx[j].name,chx[j].chinese,chx[j].math,chx[j].english);*/
							
						}
						struct chx temp = {NULL};
					}
					
				}
				break;
			}
				
			case 3:{
				for(int i=1;i<aa;i++){
					for(int j=0;j<aa-i;j++){
						if(chx[j].math<chx[j+1].math){
							temp.sno  = chx[j].sno;
							chx[j].sno = chx[j+1].sno;
							chx[j+1].sno = temp.sno;
							
							strcpy(temp.name,chx[j+1].name );
							strcpy(chx[j+1].name,chx[j].name );
							strcpy(chx[j].name,temp.name );
							
							
							temp.chinese  = chx[j].chinese;
							chx[j].chinese = chx[j+1].chinese;
							chx[j+1].chinese = temp.chinese;
							
							
							temp.math  = chx[j].math;
							chx[j].math = chx[j+1].math;
							chx[j+1].math = temp.math;
							
							
							temp.english  = chx[j].english;
							chx[j].english = chx[j+1].english;
							chx[j+1].english = temp.english;
							
							/*printf("第%d个学生的学号是%d    姓名是%s    语文成绩是%d  数学成绩是%d   英语成绩是%d\n",
																i+1,chx[i].sno,chx[i].name,chx[i].chinese,chx[i].math,chx[i].english);*/
							
						}
					struct chx temp = {NULL};
					}
					
				}
				break;
			}
			
			case 4:{
				for(int i=1;i<aa;i++){
					for(int j=0;j<aa-i;j++){
						if(chx[j].english<chx[j+1].english){
							temp.sno  = chx[j].sno;
							chx[j].sno = chx[j+1].sno;
							chx[j+1].sno = temp.sno;
							
							strcpy(temp.name,chx[j+1].name );
							strcpy(chx[j+1].name,chx[j].name );
							strcpy(chx[j].name,temp.name );
							
							
							temp.chinese  = chx[j].chinese;
							chx[j].chinese = chx[j+1].chinese;
							chx[j+1].chinese = temp.chinese;
							
							
							temp.math  = chx[j].math;
							chx[j].math = chx[j+1].math;
							chx[j+1].math = temp.math;
							
							
							temp.english  = chx[j].english;
							chx[j].english = chx[j+1].english;
							chx[j+1].english = temp.english;
							
							/*printf("第%d个学生的学号是%d    姓名是%s    语文成绩是%d  数学成绩是%d   英语成绩是%d\n",
																i+1,chx[i].sno,chx[i].name,chx[i].chinese,chx[i].math,chx[i].english);*/
							
						}
						struct chx temp = {NULL};
						
					}
					
				}
				break;
			}
				
			case 5:{
				for(int i=0;i<aa;i++){
					printf("第%d个学生的学号是%d    姓名是%s    语文成绩是%d  数学成绩是%d   英语成绩是%d\n",
					i+1,chx[i].sno,chx[i].name,chx[i].chinese,chx[i].math,chx[i].english);
				}
				break;
			}	
					
		}
		
		if(a==0){
			break;
		}
	}
} 

结果如下:

选择服务
1.录入学生信息
2.按照语文排序
3.按照数学排序
4.按照英语排序
5.打印输出
0.退出
1
输入学生录入个数
6
输入第1个学生的学号
1
输入第1个学生的姓名
a 
输入第1个学生的语文成绩
99
输入第1个学生的数学成绩
100
输入第1个学生的英语成绩
101
输入第2个学生的学号
2
输入第2个学生的姓名
b
输入第2个学生的语文成绩
99 
输入第2个学生的数学成绩
101
输入第2个学生的英语成绩
100
输入第3个学生的学号
3
输入第3个学生的姓名
c
输入第3个学生的语文成绩
100
输入第3个学生的数学成绩
99
输入第3个学生的英语成绩
101
输入第4个学生的学号
4
输入第4个学生的姓名
d
输入第4个学生的语文成绩
100
输入第4个学生的数学成绩
101
输入第4个学生的英语成绩
99
输入第5个学生的学号
5
输入第5个学生的姓名
e
输入第5个学生的语文成绩
101
输入第5个学生的数学成绩
99
输入第5个学生的英语成绩
100
输入第6个学生的学号
6
输入第6个学生的姓名
f
输入第6个学生的语文成绩
101
输入第6个学生的数学成绩
100
输入第6个学生的英语成绩
99
选择服务
1.录入学生信息
2.按照语文排序
3.按照数学排序
4.按照英语排序
5.打印输出
0.退出
5
第1个学生的学号是1    姓名是a    语文成绩是99  数学成绩是100   英语成绩是101
第2个学生的学号是2    姓名是b    语文成绩是99  数学成绩是101   英语成绩是100
第3个学生的学号是3    姓名是c    语文成绩是100  数学成绩是99   英语成绩是101
第4个学生的学号是4    姓名是d    语文成绩是100  数学成绩是101   英语成绩是99
第5个学生的学号是5    姓名是e    语文成绩是101  数学成绩是99   英语成绩是100
第6个学生的学号是6    姓名是f    语文成绩是101  数学成绩是100   英语成绩是99
选择服务
1.录入学生信息
2.按照语文排序
3.按照数学排序
4.按照英语排序
5.打印输出
0.退出
2
选择服务
1.录入学生信息
2.按照语文排序
3.按照数学排序
4.按照英语排序
5.打印输出
0.退出
5
第1个学生的学号是5    姓名是e    语文成绩是101  数学成绩是99   英语成绩是100
第2个学生的学号是6    姓名是f    语文成绩是101  数学成绩是100   英语成绩是99
第3个学生的学号是3    姓名是c    语文成绩是100  数学成绩是99   英语成绩是101
第4个学生的学号是4    姓名是d    语文成绩是100  数学成绩是101   英语成绩是99
第5个学生的学号是1    姓名是a    语文成绩是99  数学成绩是100   英语成绩是101
第6个学生的学号是2    姓名是b    语文成绩是99  数学成绩是101   英语成绩是100
选择服务
1.录入学生信息
2.按照语文排序
3.按照数学排序
4.按照英语排序
5.打印输出
0.退出
3
选择服务
1.录入学生信息
2.按照语文排序
3.按照数学排序
4.按照英语排序
5.打印输出
0.退出
5
第1个学生的学号是4    姓名是d    语文成绩是100  数学成绩是101   英语成绩是99
第2个学生的学号是2    姓名是b    语文成绩是99  数学成绩是101   英语成绩是100
第3个学生的学号是6    姓名是f    语文成绩是101  数学成绩是100   英语成绩是99
第4个学生的学号是1    姓名是a    语文成绩是99  数学成绩是100   英语成绩是101
第5个学生的学号是5    姓名是e    语文成绩是101  数学成绩是99   英语成绩是100
第6个学生的学号是3    姓名是c    语文成绩是100  数学成绩是99   英语成绩是101
选择服务
1.录入学生信息
2.按照语文排序
3.按照数学排序
4.按照英语排序
5.打印输出
0.退出
4
选择服务
1.录入学生信息
2.按照语文排序
3.按照数学排序
4.按照英语排序
5.打印输出
0.退出
5
第1个学生的学号是1    姓名是a    语文成绩是99  数学成绩是100   英语成绩是101
第2个学生的学号是3    姓名是c    语文成绩是100  数学成绩是99   英语成绩是101
第3个学生的学号是2    姓名是b    语文成绩是99  数学成绩是101   英语成绩是100
第4个学生的学号是5    姓名是e    语文成绩是101  数学成绩是99   英语成绩是100
第5个学生的学号是4    姓名是d    语文成绩是100  数学成绩是101   英语成绩是99
第6个学生的学号是6    姓名是f    语文成绩是101  数学成绩是100   英语成绩是99
选择服务
1.录入学生信息
2.按照语文排序
3.按照数学排序
4.按照英语排序
5.打印输出
0.退出
0

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值