输入一个学生的学号、姓名和成绩,再输出其学号、姓名和成绩。 (2) 用指针方式实现上面的程序。
时间: 2024-12-29 14:36:09 浏览: 14
要实现这个简单的程序,你可以使用结构体来存储学生信息,然后用指针来传递这些信息。首先定义一个结构体`Student`:
```c
#include <stdio.h>
#include <string.h>
// 定义学生结构体
typedef struct {
int student_id;
char name[50];
float score;
} Student;
// 输入学生信息的函数
void input_student(Student *student) {
printf("请输入学号:");
scanf("%d", &student->student_id);
printf("请输入姓名:");
fgets(student->name, sizeof(student->name), stdin); // 注意fgets处理换行符
printf("请输入成绩:");
scanf("%f", &student->score);
}
// 输出学生信息的函数
void output_student(const Student *student) {
printf("学号:%d 姓名:%s 成绩:%f\n",
student->student_id, student->name, student->score);
}
int main() {
// 创建指向Student的指针
Student *ptr_student = malloc(sizeof(Student)); // 分配内存
if (ptr_student == NULL) { // 检查内存分配是否成功
perror("Memory allocation failed");
return 1;
}
// 输入学生信息
input_student(ptr_student);
// 输出学生信息
output_student(ptr_student);
free(ptr_student); // 释放内存
return 0;
}
```
在这个程序中,我们先定义了一个`Student`结构体,包含了学号、姓名和成绩三个成员。接着,我们分别创建了一个`input_student`函数用于获取输入,一个`output_student`函数用于打印结果,以及在`main`函数中使用了指针`ptr_student`来保存和操作学生数据。
记得在程序结束时调用`free(ptr_student)`释放动态分配的内存,以防止内存泄漏。
阅读全文