c语言,要运用结构体,其他要求看图,其他觉得有问题的可以找我
6条回答 默认 最新
- ChatGPTᴼᴾᴱᴺᴬᴵ 2022-12-21 22:58关注
ChatGPT尝试为您解答,仅供参考
#include <stdio.h> #include <stdlib.h> #include <time.h> #define NUM_STUDENTS 30 // 定义结构体表示学生信息 struct student { int id; char name[32]; int scores[6]; float avg; }; // 生成随机成绩函数 void generate_scores(struct student *s) { for (int i = 0; i < 6; i++) { s->scores[i] = rand() % 100; } } // 计算平均分函数 void calculate_avg(struct student *s) { float sum = 0; for (int i = 0; i < 6; i++) { sum += s->scores[i]; } s->avg = sum / 6; } // 按平均分排序函数 void sort_by_avg(struct student *students) { // 冒泡排序 for (int i = 0; i < NUM_STUDENTS - 1; i++) { for (int j = 0; j < NUM_STUDENTS - i - 1; j++) { if (students[j].avg < students[j + 1].avg) { struct student temp = students[j]; students[j] = students[j + 1]; students[j + 1] = temp; } } } } // 输出学生信息函数 void print_students(struct student *students) { for (int i = 0; i < NUM_STUDENTS; i++) { printf("学号:%d 姓名:%s 平均分:%.2f\n", students[i].id, students[i].name, students[i].avg); } } int main() { // 初始化随机数种子 srand(time(0)); // 创建学生数组 struct student students[NUM_STUDENTS]; // 初始化学生信息 for (int i = 0; i < NUM_STUDENTS; i++) { // 初始化学号和姓名 students[i].id = i + 1; sprintf(students[i].name, "学生%d", i + 1); // 随机生成成绩 generate_scores(&students[i]); // 计算平均分 calculate_avg(&students[i]); } // 输出初始学生信息 printf("初始学生信息:\n"); print_students(students); // 按平均分排序 sort_by_avg(students); // 输出排序后的学生信息 printf("排序后的学生信息:\n"); print_students(students); return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥30 深度学习,前后端连接
- ¥15 孟德尔随机化结果不一致
- ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
- ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
- ¥15 谁有desed数据集呀
- ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
- ¥15 关于#hadoop#的问题
- ¥15 (标签-Python|关键词-socket)
- ¥15 keil里为什么main.c定义的函数在it.c调用不了
- ¥50 切换TabTip键盘的输入法