用指针循环结构输入输出三位学生学号,姓名
时间: 2023-11-23 22:32:15 浏览: 133
好的,可以使用以下代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
struct student {
int id;
char name[20];
};
int main() {
struct student stu[3];
struct student *p = stu;
// 输入学生信息
for (p = stu; p < stu + 3; p++) {
printf("请输入第 %d 位学生的学号和姓名:\n", p - stu + 1);
scanf("%d %s", &p->id, p->name);
}
// 输出学生信息
for (p = stu; p < stu + 3; p++) {
printf("第 %d 位学生的学号为 %d,姓名为 %s\n", p - stu + 1, p->id, p->name);
}
return 0;
}
```
在这段代码中,我们同样定义了一个名为 `student` 的结构体,其中包含学生的学号和姓名。接着,在 `main` 函数中,我们定义了一个包含三个学生信息的 `stu` 数组,并将指向该数组的指针 `p` 初始化为 `stu` 的地址。然后,我们通过循环依次输入每个学生的信息,循环条件为 `p < stu + 3`,也就是 `p` 指向的地址在 `stu` 和 `stu + 3` 之间。在循环体中,我们先输出提示信息,然后使用 `scanf` 函数输入学生信息。由于 `p` 是指针类型,所以我们可以使用箭头运算符 `->` 访问结构体成员。最后,再通过循环输出每个学生的信息,同样需要使用指针 `p`,并将循环条件和循环体中的内容稍作修改即可。