用结构体知识编程

来源:百度知道 编辑:UC知道 时间:2024/06/25 04:18:33
已知一个学生的成绩记录由以下项组成(学号,班级,姓名,语文,数学,外语),现对n个学生按照总分的从大到小顺序排序,如果总分相等,则按照学号从小到大的顺序排列.
输入:
5
8702 87 carl 80 80 80
8501 85 jim 70 80 90
8803 88 tom 60 70 100
8601 86 john 90 100 100
8905 89 kate 70 70 70
输出:
8601 86 john 90 100 100
8501 85 jim 70 80 90
8702 87 carl 80 80 80
8803 88 tom 60 70 100
8905 89 kate 70 70 70

我给你量身定做了一个程序:

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

#define STU_MAX_NUM 10//能输入的最大学生数

typedef struct //定义结构体数组
{
char num[20]; //学号
char clas[20];//班级
char name[20]; //姓名
int chinese; //语文成绩
int math; //数学成绩
int english; //外语成绩
int total;//总分
} Student;

Student stu[STU_MAX_NUM];
int num=0;

//输入学生信息
void input(void)
{
int i;

printf("请输入学生的个数(<%d):\n",STU_MAX_NUM);
scanf("%d",&num);
printf("请输入%d个学生的信息:\n",num);
for(i=0;i<num;i++)
{
//printf("学号:");
scanf("%s",stu[i].num);
//printf("班级:");
scanf("%s",stu[i].clas);
//printf("姓名:");
scanf("%s",stu[i].name);
//printf("语文成绩:");
scanf("%d",&stu[i].chinese);
//printf("数学成绩:&quo