复习:学生数据结构体
本课属于 Coddy C 学习旅程的“逻辑与流程”单元。第 43 课,共 63 课。
挑战
简单编写一个 C 程序,通过学生管理系统展示使用结构体的完整流程。你的程序应当:
- 定义一个名为
Student的struct,包含以下成员:- 一个整数
id,用于存储学生的 ID 号 - 一个浮点数
grade,用于存储学生的成绩
- 一个整数
- 在 main 函数中,创建一个名为
student1的Student变量 - 使用
scanf从输入中读取学生的 ID 和成绩:- 读取一个整数作为 ID,并将其存储在
student1.id中 - 读取一个浮点数作为成绩,并将其存储在
student1.grade中
- 读取一个整数作为 ID,并将其存储在
- 读取输入后,执行以下验证和计算:
- 如果成绩大于 100.0,将其设为 100.0
- 如果成绩小于 0.0,将其设为 0.0
- 在当前成绩(验证后)的基础上加 5.0,计算奖励成绩
- 如果奖励成绩超过 100.0,将其设为 100.0
- 按以下精确格式输出学生信息:
Student Information:ID: [id]Original Grade: [grade]Bonus Grade: [bonus_grade]Grade Status: [status]
- 按以下规则确定成绩状态:
- 原始成绩为 90.0 或更高:
Excellent - 原始成绩为 80.0 到 89.9:
Good - 原始成绩为 70.0 到 79.9:
Average - 原始成绩低于 70.0:
Needs Improvement
- 原始成绩为 90.0 或更高:
这个挑战将检验你对结构体定义、变量创建、使用点运算符访问成员、使用 scanf 处理输入,以及用于数据验证和处理的条件逻辑的理解。你将通过一个实际场景练习使用结构体的完整流程。
亲手试试
#include <stdio.h>
// TODO: 在这里定义 Student 结构体
int main() {
// TODO: 创建一个名为 student1 的 Student 变量
// 读取输入
int id;
float grade;
scanf("%d", &id);
scanf("%f", &grade);
// TODO: 将输入值存入结构体成员
// TODO: 实现成绩验证和加分计算
// TODO: 确定成绩状态
// 输出结果
printf("Student Information:\n");
printf("ID: %d\n", /* TODO: 输出学生 ID */);
printf("Original Grade: %.1f\n", /* TODO: 输出原始成绩 */);
printf("Bonus Grade: %.1f\n", /* TODO: 输出加分后成绩 */);
printf("Grade Status: %s\n", /* TODO: 输出成绩状态 */);
return 0;
}逻辑与流程中的所有课
自己练习: C 在线编译器