C语言结构体排序问题

来源:百度知道 编辑:UC知道 时间:2024/06/05 05:01:17
输入一个班10个学生的学号和每个学生考试三门功课(数学、英语、计算机基础)的成绩。编程计算出每个学生的总分和平均分,并按学生成绩优劣排序,最后打印一张按高分到低分名次排序的成绩单。要求:
1)排序用一个函数实现。
2)打印的成绩单表项包括:序号,学号、数学、英语、计算机、总分、平均分。

给个程序把,真的懒得改了,改来改去

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

#define STU_NUM 10//学生数
#define SCORE_NUM 3//每个学生的科目数

typedef struct /*定义结构体数组*/
{
char num[20]; /*学号*/
int age; /*年龄*/
char name[20]; /*姓名*/
char sex[5]; /*性别*/
float score[SCORE_NUM]; /*成绩*/
float total;//总分
float average;//平均分
} Student;

Student stu[STU_NUM];

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

printf("请输入%d个学生的信息:\n",STU_NUM);
for(i=0;i<STU_NUM;i++)
{
printf("学号:");
scanf("%s",&stu[i].num);
printf("姓名:");
scanf("%s",&stu[i].name);
printf("年龄:");
scanf("%d",&stu[i].age);
printf("性别:",&stu[i].sex);
scanf("%s",&stu[i].sex);
for(j=0;j<SCORE_NUM;j++)
{
printf("科目%d的成绩:",j+1);