c语言编写程序,输入某班10个同学的学号、姓名和成绩,输出成绩最高和成绩最低同学的学号、姓名和成绩。要求:将某一同学的信息(学号、姓名和成绩)定义为自定义数据类型
时间: 2023-09-06 18:07:42 浏览: 132
好的,这是一个C语言程序,可以实现你的需求。在该程序中,我们先定义了一个结构体类型`student`,用来存储学生的学号、姓名和成绩。然后定义了一个长度为10的学生数组`stu`,通过循环输入每个学生的信息。最后再通过两个循环找出成绩最高和最低的学生,输出其信息。
```c
#include <stdio.h>
// 定义学生类型
struct student {
int num; // 学号
char name[20]; // 姓名
float score; // 成绩
};
int main() {
struct student stu[10];
int max = 0, min = 0;
// 输入10个学生的信息
for (int i = 0; i < 10; i++) {
printf("请输入第%d个学生的学号、姓名和成绩:", i+1);
scanf("%d%s%f", &stu[i].num, stu[i].name, &stu[i].score);
// 找出成绩最高和最低的学生
if (stu[i].score > stu[max].score) {
max = i;
}
if (stu[i].score < stu[min].score) {
min = i;
}
}
// 输出成绩最高和最低的学生的信息
printf("成绩最高的学生是:\n");
printf("学号:%d,姓名:%s,成绩:%.2f\n", stu[max].num, stu[max].name, stu[max].score);
printf("成绩最低的学生是:\n");
printf("学号:%d,姓名:%s,成绩:%.2f\n", stu[min].num, stu[min].name, stu[min].score);
return 0;
}
```
在这个程序中,我们使用了结构体类型`student`来定义学生的信息。在循环输入学生信息的过程中,还用两个变量`max`和`min`来保存成绩最高和最低的学生的下标,方便后面输出时直接调用。注意,在输入学生姓名时,可以直接使用`%s`格式化符号,因为字符串本身就是一个字符数组,不需要再使用取地址符`&`。
阅读全文