有若干个学生的成绩数据,其中成绩有百分制与五分制(优、良、中、及格和不及格)。学生的数据中包括:学号、课程名、成绩类型、成绩。要求用同一个表格来处理,设计百分制与五级分制通用的表格 步骤: 1) 定义共用体类型; 2) 定义学生结构体类型,其中成绩是共用体类型; 3) 输入测试数据,成绩类型1代表百分制,5代表五分制: 101 C语言 1 80 101 体育 5 良 102 C语言 1 75 102 体育 5 优 3)输出学生的学号、课程名和成绩信息。
时间: 2023-05-31 10:03:37 浏览: 101
#include <stdio.h>
typedef union {
int score;
char grade[3];
} Grade; // 共用体类型
typedef struct {
int id;
char course[10];
int type;
Grade grade;
} Student; // 学生结构体类型
int main() {
Student stu[2] = {
{101, "C语言", 1, {80}},
{101, "体育", 5, {"良"}}
}; // 测试数据
for (int i = 0; i < 2; i++) {
printf("学号:%d,课程名:%s,成绩:", stu[i].id, stu[i].course);
if (stu[i].type == 1) {
printf("%d\n", stu[i].grade.score); // 百分制成绩
} else {
printf("%s\n", stu[i].grade.grade); // 五分制成绩
}
}
return 0;
}
相关问题
有若干个学生的成绩数据,其中成绩有百分制与五分制(优、良、中、及格和不及格)。学生的数据中包括:学号、课程名、成绩类型、成绩。要求用同一个表格来处理,设计百分制与五级分制通用的表格 步骤: 1) 定义共用体类型; 2) 定义学生结构体类型,其中成绩是共用体类型; 3) 运行程序时随机输入测试数据,成绩类型1代表百分制,5代表五分制: 101 C语言 1 80 101 体育 5 良 102 C语言 1 75 102 体育 5 优 3)输出学生的学号、课程名和成绩信息。
代码如下:
#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;
}
百分制成绩转换五分制(循环)
百分制成绩转换为五分制是一种常见的评分制度转换方法,它将百分制的成绩按照一定的规则映射到五个等级中。以下是一种常见的转换方法:
1. 将百分制成绩分为五个等级:优秀(90-100分)、良好(80-89分)、中等(70-79分)、及格(60-69分)和不及格(0-59分)。
2. 根据百分制成绩的范围,将其映射到对应的五分制等级。例如,如果百分制成绩在90-100之间,则对应的五分制等级为5;如果百分制成绩在80-89之间,则对应的五分制等级为4,依此类推。
3. 如果百分制成绩不在以上范围内,可以根据具体情况进行调整。例如,可以将90-100之间的成绩映射为5,85-89之间的成绩映射为4.5,80-84之间的成绩映射为4,依此类推。
需要注意的是,不同学校或者不同教育机构可能会有不同的转换规则,所以具体的转换方法可能会有所差异。
阅读全文