从键盘输入5个学生的基本信息,如姓名、年 龄、性别、学号,然后将学号最大的学生的基本信 息输出到屏幕。 1.定义结构体 2.定义结构体数组 3.结构体数组元素初始化 4.比较每个结构体数组元素的学号(strcmp0函数) C语言编程 完整代码
时间: 2024-09-13 08:10:05 浏览: 58
在C语言中,要实现从键盘输入5个学生的基本信息,并输出学号最大的学生信息,可以按照以下步骤进行:
1. 定义结构体:首先定义一个结构体类型来存储学生的信息。
2. 定义结构体数组:接着定义一个该结构体类型的数组,用于存储5个学生的信息。
3. 结构体数组元素初始化:使用循环结合输入函数(如`scanf`)来初始化结构体数组的元素。
4. 比较结构体数组元素的学号:使用循环和`strcmp`函数比较每个学生的学号,找到学号最大的学生。
5. 输出学号最大的学生信息:最后输出学号最大的学生的所有信息。
下面是实现上述功能的完整C语言代码示例:
```c
#include <stdio.h>
#include <string.h>
// 定义学生信息的结构体
typedef struct {
char name[50];
int age;
char gender;
char studentID[20];
} Student;
int main() {
Student students[5]; // 定义结构体数组
int maxIndex = 0; // 存储学号最大的学生的索引
char temp[20]; // 用于临时存储学号字符串
// 从键盘输入5个学生的基本信息
for (int i = 0; i < 5; i++) {
printf("请输入第%d个学生的信息:\n", i + 1);
printf("姓名: ");
scanf("%s", students[i].name);
printf("年龄: ");
scanf("%d", &students[i].age);
printf("性别(男/女): ");
scanf(" %c", &students[i].gender); // 注意前面的空格,用于消除前一个输入留下的换行符
printf("学号: ");
scanf("%s", students[i].studentID);
}
// 初始化一个临时变量来存储最大学号
strcpy(temp, students[0].studentID);
// 比较每个学生的学号,并找到学号最大的学生
for (int i = 1; i < 5; i++) {
if (strcmp(temp, students[i].studentID) < 0) {
strcpy(temp, students[i].studentID);
maxIndex = i;
}
}
// 输出学号最大的学生的基本信息
printf("\n学号最大的学生信息是:\n");
printf("姓名: %s\n", students[maxIndex].name);
printf("年龄: %d\n", students[maxIndex].age);
printf("性别: %c\n", students[maxIndex].gender);
printf("学号: %s\n", students[maxIndex].studentID);
return 0;
}
```
这段代码首先定义了一个学生信息的结构体,然后创建了一个结构体数组,并通过循环接收用户的输入。接着,通过`strcmp`函数比较学号,找到学号最大的学生,并输出其信息。
阅读全文