利用malloc()函数开辟动态存储单元,存放输入的3个学生的信息,然后输出这3个学生的信息。
时间: 2024-04-29 09:23:32 浏览: 59
学生信息的动态输入和降序输出
以下是一个示例代码,可以实现上述功能:
```c
#include <stdio.h>
#include <stdlib.h>
struct student {
char name[20];
int age;
float score;
};
int main() {
int i;
struct student *p;
// 开辟动态存储单元
p = (struct student*)malloc(3 * sizeof(struct student));
// 输入学生信息
for (i = 0; i < 3; i++) {
printf("请输入第%d个学生的姓名、年龄和成绩:", i + 1);
scanf("%s %d %f", p[i].name, &p[i].age, &p[i].score);
}
// 输出学生信息
printf("学生信息如下:\n");
for (i = 0; i < 3; i++) {
printf("姓名:%s,年龄:%d,成绩:%f\n", p[i].name, p[i].age, p[i].score);
}
// 释放动态存储单元
free(p);
return 0;
}
```
这个程序首先使用malloc()函数开辟了3个struct student类型的动态存储单元,存放了输入的3个学生的信息。然后再使用for循环输出了这3个学生的信息。最后使用free()函数释放了动态存储单元。注意在输入和输出学生信息的过程中,通过指针p来访问动态存储单元中的数据。
阅读全文