C 语言中结构体数组的输出21


在 C 语言中,可以使用数组来存储结构体的集合。结构体数组是一个强大的工具,因为它允许将相关数据以一种结构化且易于管理的方式组合在一起。

定义结构体数组

要定义一个结构体数组,您需要先定义一个结构体类型,然后声明一个该结构体的数组。```c
typedef struct {
int roll_no;
char name[50];
float marks;
} student;
student students[5]; // 定义一个包含 5 个学生的结构体数组
```
在这个示例中,我们定义了一个 student 结构体,它包含三个成员:roll_no(学号)、name(姓名)和 marks(分数)。然后我们声明了一个名为 students 的 student 结构体数组,它可以容纳 5 个学生的信息。

结构体数组的输入

要输入结构体数组中的数据,您可以使用循环逐个输入每个结构体。下面是一个使用 scanf() 输入函数的示例:```c
for (int i = 0; i < 5; i++) {
printf("Enter student %d details:", i + 1);
scanf("%d %s %f", &students[i].roll_no, students[i].name, &students[i].marks);
}
```

结构体数组的输出

有几种方法可以输出结构体数组中的数据。

使用逐个输出


您可以使用循环逐个输出每个结构体,就像您输入数据一样。下面是一个使用 printf() 输出函数的示例:```c
for (int i = 0; i < 5; i++) {
printf("Student %d details:", i + 1);
printf("Roll No: %d", students[i].roll_no);
printf("Name: %s", students[i].name);
printf("Marks: %.2f", students[i].marks);
}
```

使用指针


您还可以使用指针来输出结构体数组中的数据。这通常比使用逐个输出更有效,因为它避免了不必要的内存复制。```c
student *ptr = students; // 指向数组的第一个元素
for (int i = 0; i < 5; i++) {
printf("Student %d details:", i + 1);
printf("Roll No: %d", ptr->roll_no);
printf("Name: %s", ptr->name);
printf("Marks: %.2f", ptr->marks);
ptr++; // 移动指针到下一个元素
}
```

使用格式字符串


您还可以使用 printf() 函数的格式字符串来输出结构体数组中的数据。这是一种简洁高效的方法,特别适用于输出格式化的数据。```c
printf("| %3s | %-15s | %6s |", "Roll No", "Name", "Marks");
for (int i = 0; i < 5; i++) {
printf("| %3d | %-15s | %6.2f |", students[i].roll_no, students[i].name, students[i].marks);
}
```

结构体数组是组织和管理相关数据的强大工具。C 语言为输入和输出结构体数组提供了几种灵活的方法。通过使用这些方法,您可以有效地处理和显示数据,从而提高应用程序的可读性和可维护性。

2024-11-04


上一篇:C 语言中高效的进制转换函数

下一篇:C 语言指针定义函数