有若干个学生的成绩数据,其中成绩有百分制与五分制(优、良、中、及格和不及格)。学生的数据中包括:学号、课程名、成绩类型、成绩。要求用同一个表格来处理,设计百分制与五级分制通用的表格 步骤: 1) 定义共用体类型; 2) 定义学生结构体类型,其中成绩是共用体类型; 3) 输入测试数据,成绩类型1代表百分制,5代表五分制: 101 C语言 1 80 101 体育 5 良 102 C语言 1 75 102 体育 5 优 3)输出学生的学号、课程名和成绩信息。
时间: 2023-05-31 09:03:37 浏览: 77
#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;
}
用java语言写一个程序定义成绩变量score并赋值,用switch实现百分制转换成五分制,输出五分制结果
好的,我可以回答这个问题。以下是Java语言的程序代码:
```
public class ScoreConverter {
public static void main(String[] args) {
int score = 85; // 定义成绩变量并赋值
int grade = score / 20; // 计算百分制成绩对应的等级
String result; // 定义五分制结果变量
switch (grade) {
case 5:
case 4:
result = "优秀";
break;
case 3:
result = "良好";
break;
case 2:
result = "及格";
break;
default:
result = "不及格";
break;
}
System.out.println("五分制结果为:" + result);
}
}
```
以上程序定义了一个成绩变量score并赋值为85,然后用switch语句实现了百分制转换成五分制,并输出了五分制结果为“良好”。