创建结构体数组,并输入多组数据,如何交换结构体数组中的内容
时间: 2023-08-15 10:39:49 浏览: 161
详解C++中的指针结构体数组以及指向结构体变量的指针
5星 · 资源好评率100%
要交换结构体数组中的内容,你可以定义一个临时的结构体变量,将要交换的两个元素的内容分别赋值给这个临时变量,然后再将它们交换。具体实现步骤如下:
1. 定义结构体类型。
```c
typedef struct {
int id;
char name[20];
} Student;
```
2. 定义结构体数组并输入数据。
```c
Student stu[3];
for (int i = 0; i < 3; i++) {
scanf("%d %s", &stu[i].id, stu[i].name);
}
```
3. 定义交换函数。
```c
void swap(Student *a, Student *b) {
Student temp = *a;
*a = *b;
*b = temp;
}
```
4. 调用交换函数交换结构体数组中的元素。
```c
swap(&stu[0], &stu[1]); // 交换第1个和第2个元素
```
完整代码如下:
```c
#include <stdio.h>
typedef struct {
int id;
char name[20];
} Student;
void swap(Student *a, Student *b) {
Student temp = *a;
*a = *b;
*b = temp;
}
int main() {
Student stu[3];
for (int i = 0; i < 3; i++) {
scanf("%d %s", &stu[i].id, stu[i].name);
}
swap(&stu[0], &stu[1]); // 交换第1个和第2个元素
for (int i = 0; i < 3; i++) {
printf("%d %s\n", stu[i].id, stu[i].name);
}
return 0;
}
```
阅读全文