有若干个学生的成绩数据,其中成绩有百分制与五分制(优、良、中、及格和不及格)。学生的数据中包括:学号、课程名、成绩类型、成绩。要求用同一个表格来处理,设计百分制与五级分制通用的表格 步骤: 1) 定义共用体类型; 2) 定义学生结构体类型,其中成绩是共用体类型; 3) 运行程序时随机输入测试数据,成绩类型1代表百分制,5代表五分制: 101 C语言 1 80 101 体育 5 良 102 C语言 1 75 102 体育 5 优 3)输出学生的学号、课程名和成绩信息。
时间: 2023-05-31 12:03:43 浏览: 89
代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 定义共用体类型
typedef union {
int score_percent; // 百分制成绩
char score_five[3]; // 五分制成绩:优、良、中、及格、不及格
} Score;
// 定义学生结构体类型
typedef struct {
int stu_id; // 学号
char course_name[20]; // 课程名
int score_type; // 成绩类型:1代表百分制,5代表五分制
Score score; // 成绩
} Student;
int main() {
Student stu[3]; // 存储3个学生的数据
int i;
// 随机输入测试数据
for (i = 0; i < 3; i++) {
printf("请输入第%d个学生的数据:\n", i+1);
printf("学号:");
scanf("%d", &stu[i].stu_id);
printf("课程名:");
scanf("%s", stu[i].course_name);
printf("成绩类型(1代表百分制,5代表五分制):");
scanf("%d", &stu[i].score_type);
if (stu[i].score_type == 1) {
printf("百分制成绩:");
scanf("%d", &stu[i].score.score_percent);
} else if (stu[i].score_type == 5) {
printf("五分制成绩(优、良、中、及格、不及格):");
scanf("%s", stu[i].score.score_five);
} else {
printf("错误的成绩类型!\n");
exit(1);
}
}
// 输出学生的学号、课程名和成绩信息
printf("\n学号\t课程名\t成绩\n");
for (i = 0; i < 3; i++) {
printf("%d\t%s\t", stu[i].stu_id, stu[i].course_name);
if (stu[i].score_type == 1) {
printf("%d\n", stu[i].score.score_percent);
} else if (stu[i].score_type == 5) {
printf("%s\n", stu[i].score.score_five);
}
}
return 0;
}
阅读全文