请编写一个子函数,主函数通过结构体指针传递方式,在子函数中修改姓名为“yansan”,分数为88.5,并在主函数调用前、子函数修改值后、主函数调用后,分别输出结构体变量值。
时间: 2024-09-28 19:06:31 浏览: 54
当然,以下是使用C语言编写的子函数,实现了通过结构体指针修改姓名和分数的功能:
```c
#include <stdio.h>
#include <string.h>
// 定义结构体
struct student {
int num;
char name[20];
float score;
};
// 子函数,用于修改结构体成员
void update_student(struct student *s) {
strcpy(s->name, "yansan"); // 修改姓名
s->score = 88.5; // 修改分数
}
int main() {
// 创建并初始化结构体变量
struct student student1 = {1001, "ZhangQiang", 82.5};
// 输出修改前的结构体变量值
printf("Before modification:\n");
printf("Number: %d\n", student1.num);
printf("Name: %s\n", student1.name);
printf("Score: %.2f\n", student1.score);
// 通过指针调用子函数进行修改
update_student(&student1);
// 输出修改后的结构体变量值
printf("\nAfter modification:\n");
printf("Number: %d\n", student1.num);
printf("Name: %s\n", student1.name);
printf("Score: %.2f\n", student1.score);
return 0;
}
```
在这段代码中,`update_student`函数接受一个`struct student`类型的指针作为输入,可以直接对它所指向的结构体进行修改。在`main`函数中,我们先打印原始的`student1`值,调用`update_student`函数进行修改,然后再打印修改后的值。
阅读全文