用c语言设计一个结构体用于表示学生的信息,包括学号、姓名和年龄。编写一个程序,从键盘输入若干个学生的信息,存储到结构体数组中,并输出年龄最大的学生的学号和姓名。输入:从键盘输入一个整数 n (1=n=100),表示学生人数。接下来输入 行,每行包含一个学生的信息,格下:学号(12位)姓名(不合空格且不超过 20位)年龄(整数) 数据之间用空格隔开。 输出:输出年龄最大的学生的学号和姓名,用空格隔开
时间: 2024-02-15 10:01:20 浏览: 80
好的,下面是结构体和程序的代码实现:
```c
#include <stdio.h>
#include <string.h>
#define MAX_N 100
#define MAX_ID_LEN 13
#define MAX_NAME_LEN 21
struct Student {
char id[MAX_ID_LEN];
char name[MAX_NAME_LEN];
int age;
};
int main() {
int n;
struct Student students[MAX_N];
printf("请输入学生人数:");
scanf("%d", &n);
for (int i = 0; i < n; i++) {
printf("请输入第%d个学生的信息(学号 姓名 年龄): ", i + 1);
scanf("%s %s %d", students[i].id, students[i].name, &students[i].age);
}
int max_age = students[0].age;
int max_age_index = 0;
for (int i = 1; i < n; i++) {
if (students[i].age > max_age) {
max_age = students[i].age;
max_age_index = i;
}
}
printf("年龄最大的学生是:%s %s\n", students[max_age_index].id, students[max_age_index].name);
return 0;
}
```
首先定义了一个结构体 `Student`,包含学号、姓名和年龄三个字段。然后在主函数中,先从键盘输入学生人数,再循环输入每个学生的信息,并将其存储到结构体数组 `students` 中。接着,循环遍历数组,找到年龄最大的学生,记录其下标 `max_age_index`,最后输出该学生的学号和姓名。
阅读全文