📅  最后修改于: 2023-12-03 14:59:38.702000             🧑  作者: Mango
在C语言中,结构和联合是两种不同的复合数据类型。结构定义了一组相关的成员变量,而联合同样也定义了一组成员变量,但是这些变量共用同一块内存空间。在本文中,我们将讨论关于C语言结构和联合的使用问题2。
定义一个结构体Student,包含三个成员属性:
要求从键盘输入n个学生信息并保存在结构体数组中,输出每个学生的信息。
首先,我们需要定义一个结构体类型,可以通过如下代码实现:
struct Student {
int ID;
char name[20];
int grade;
};
接下来,我们需要从键盘输入n个学生信息。可以通过以下代码实现:
int n;
printf("Please input the number of students:\n");
scanf("%d", &n);
struct Student students[n];
for (int i = 0; i < n; i++) {
printf("Please input the information of Student %d:\n", i + 1);
printf("ID:\n");
scanf("%d", &students[i].ID);
printf("name:\n");
scanf("%s", students[i].name);
printf("grade:\n");
scanf("%d", &students[i].grade);
}
接下来,我们可以使用如下代码输出每个学生的信息:
for (int i = 0; i < n; i++) {
printf("Student %d: ID=%d, name=%s, grade=%d\n", i + 1, students[i].ID, students[i].name, students[i].grade);
}
最终,我们的完整代码如下:
#include<stdio.h>
struct Student {
int ID;
char name[20];
int grade;
};
int main() {
int n;
printf("Please input the number of students:\n");
scanf("%d", &n);
struct Student students[n];
for (int i = 0; i < n; i++) {
printf("Please input the information of Student %d:\n", i + 1);
printf("ID:\n");
scanf("%d", &students[i].ID);
printf("name:\n");
scanf("%s", students[i].name);
printf("grade:\n");
scanf("%d", &students[i].grade);
}
for (int i = 0; i < n; i++) {
printf("Student %d: ID=%d, name=%s, grade=%d\n", i + 1, students[i].ID, students[i].name, students[i].grade);
}
return 0;
}
上述代码中,我们定义了一个结构体类型Student,并使用scanf从键盘输入学生信息,最后使用printf输出学生信息。