编写一个学生struct,成员有学号(id)、姓名(name)、成绩(5门课程),随机生成多个学生的学号、姓名和成绩存储到结构体数组。再根据总分进行排名并输出学生的信息和总分。
stu.h
1 #ifndef STU_H 2 #define STU_H 3 4 #include<stdio.h> 5 #include<stdlib.h> 6 #include<time.h> 7 8 #define LEN 3 9 #define NUM 5 10 11 typedef struct Student 12 { 13 int id; 14 char name[LEN]; 15 int score[NUM]; 16 }STU; 17 18 //初始化 19 void id_init(int *val); 20 void name_init(char *name, int len); 21 void score_init(int *array, int num); 22 void stuArray_init(STU *stuArray, int num); 23 24 //打印学生数组信息 25 void printArray(STU *stuArray, int num); 26 //求一个学生的成绩总分 27 int sum(STU stu, int num); 28 //比较操作 29 int cmp(const void* left, const void* right); 30 31 #endif
stu.c
1 #include "stu.h" 2 3 //初始化 4 void id_init(int *val) 5 { 6 *val = 2000 + rand() % 1000; 7 } 8 9 void name_init(char *name, int len) 10 { 11 int i; 12 for(i = 0; i < len; i++) 13 { 14 if(i == 0) 15 name[i] = 'A' + rand() % 26; 16 else 17 name[i] = 'a' + rand() % 26; 18 } 19 name[i] = '