C语言结构体本关任务:从键盘输入两个学生的学号,姓名和成绩(整数),分别存入结构体中,输出成绩较高的学生的学号,姓名和成绩。
时间: 2024-01-01 13:06:05 浏览: 270
c算法以及经典的一些程序
好的,这道题需要定义一个结构体类型来存储学生的学号,姓名和成绩,然后从键盘输入两个学生的信息,比较他们的成绩,输出成绩较高的学生的学号,姓名和成绩。下面是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
#define MAX_NAME_LEN 20
struct student {
int id;
char name[MAX_NAME_LEN];
int score;
};
int main() {
struct student s1, s2;
printf("Enter student 1 id, name and score: ");
scanf("%d %s %d", &s1.id, s1.name, &s1.score);
printf("Enter student 2 id, name and score: ");
scanf("%d %s %d", &s2.id, s2.name, &s2.score);
if (s1.score > s2.score) {
printf("Student %d %s has a higher score of %d.\n", s1.id, s1.name, s1.score);
} else {
printf("Student %d %s has a higher score of %d.\n", s2.id, s2.name, s2.score);
}
return 0;
}
```
在这个程序中,我们首先定义了一个结构体类型 `student` 来存储学生的信息。然后在 `main` 函数中创建了两个 `student` 类型的变量 `s1` 和 `s2`。接着通过 `scanf` 函数从键盘输入两个学生的信息,分别存储在 `s1` 和 `s2` 中。最后比较他们的成绩,输出成绩较高的学生的信息。注意在输入学生姓名时使用 `%s` 格式化字符串,因为学生姓名是一个字符串类型。
阅读全文