设有5个学生的相关数据,每个学生的数据为一个结构体,包括学号、姓名、两门功课的成绩及平均成绩。编写一个程序,要求输入每个学生的所有数据,并计算各个学生的平均成绩,然后依次输出各个学生的数据(学号、姓名、各门课程成绩及平均成绩)。要求学号为整型、姓名为长度为8的字符数组、成绩为浮点数从键盘输入5 个学生数据,要求:定义学生结构体.分别编写子函数实现学生数据的输入、计算等功能,结果在主函数中输出。
2条回答 默认 最新
- Taylor 淡定哥 2023-03-02 03:21关注
定义了一个名为 Student 的结构体,包含学号、姓名、两门课程的成绩及平均成绩。程序中使用了两个子函数,分别用于输入学生数据和计算学生平均成绩。最后,程序在主函数中依次输出了每个学生的数据。
#include <stdio.h> #include <string.h> // 定义学生结构体 typedef struct { int id; char name[8]; float score1; float score2; float average; } Student; // 函数:输入学生数据 void inputStudentData(Student *student) { printf("请输入学号:"); scanf("%d", &student->id); printf("请输入姓名:"); scanf("%s", student->name); printf("请输入第一门课程成绩:"); scanf("%f", &student->score1); printf("请输入第二门课程成绩:"); scanf("%f", &student->score2); student->average = (student->score1 + student->score2) / 2; } // 函数:计算学生平均成绩 void calculateStudentAverage(Student *student) { student->average = (student->score1 + student->score2) / 2; } int main() { Student students[5]; // 输入每个学生的数据并计算平均成绩 for (int i = 0; i < 5; i++) { printf("请输入第 %d 个学生的数据:\n", i + 1); inputStudentData(&students[i]); calculateStudentAverage(&students[i]); } // 输出每个学生的数据 for (int i = 0; i < 5; i++) { printf("学号:%d, 姓名:%s, 成绩1:%.2f, 成绩2:%.2f, 平均成绩:%.2f\n", students[i].id, students[i].name, students[i].score1, students[i].score2, students[i].average); } return 0; }
在上面的程序中,定义了一个名为 Student 的结构体,包含了学号、姓名、两门课程的成绩及平均成绩。在 inputStudentData 函数中,使用 scanf 函数从键盘输入学生数据。在 calculateStudentAverage 函数中,根据学生的两门课程成绩计算出平均成绩。
在主函数中,定义了一个长度为 5 的 Student 数组,用于存储 5 个学生的数据。然后,使用 for 循环依次输入每个学生的数据并计算平均成绩。最后,再使用 for 循环依次输出每个学生的数据。其中,使用了 %d、%s、%.2f 等格式化输出控制符,用于将学生的数据输出为指定的格式。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 Coze智能助手搭建过程中的问题请教
- ¥15 12864只亮屏 不显示汉字
- ¥20 三极管1000倍放大电路
- ¥15 vscode报错如何解决
- ¥15 前端vue CryptoJS Aes CBC加密后端java解密
- ¥15 python随机森林对两个excel表格读取,shap报错
- ¥15 基于STM32心率血氧监测(OLED显示)相关代码运行成功后烧录成功OLED显示屏不显示的原因是什么
- ¥100 X轴为分离变量(因子变量),如何控制X轴每个分类变量的长度。
- ¥30 求给定范围的全体素数p的(p-2)/p的连乘积值
- ¥15 VFP如何使用阿里TTS实现文字转语音?