班上有5个同学,每个同学有三个不同类型的数据项(学号,姓名,数学成绩). 编程: 1.定义结构体;2.定义输入函数(通过指针传递参数),直接赋值输入5个同学的初始数据;3.定义输出函数(通过指针传递参数),循环输出每个同学的所有数据.用C语言
时间: 2024-09-08 08:02:03 浏览: 92
英锫特入门教程 arm 1.pdf
在C语言中,结构体(struct)是一种复合数据类型,它允许将不同类型的数据项组合成一个单一的类型。下面是一个简单的例子,展示了如何定义一个结构体来存储学生的学号、姓名和数学成绩,并实现输入和输出函数。
首先,我们定义一个结构体来表示学生的信息:
```c
#include <stdio.h>
#include <string.h>
// 定义学生信息的结构体
typedef struct {
int id; // 学号
char name[50]; // 姓名
float math_score; // 数学成绩
} Student;
```
接下来,我们定义一个输入函数,该函数使用指针参数来接收学生信息的地址,并输入一个学生的信息:
```c
// 输入函数,输入单个学生的信息
void inputStudent(Student *s) {
printf("请输入学生的学号: ");
scanf("%d", &s->id);
printf("请输入学生的姓名: ");
scanf("%s", s->name); // 注意:这里假设姓名不包含空格
printf("请输入学生的数学成绩: ");
scanf("%f", &s->math_score);
}
```
然后,我们定义一个输出函数,该函数同样使用指针参数来接收学生信息的地址,并输出一个学生的所有信息:
```c
// 输出函数,输出单个学生的所有信息
void outputStudent(const Student *s) {
printf("学号: %d\n", s->id);
printf("姓名: %s\n", s->name);
printf("数学成绩: %.2f\n", s->math_score);
}
```
最后,我们可以在 `main` 函数中创建一个学生数组,并使用循环来输入和输出所有学生的信息:
```c
int main() {
Student students[5]; // 创建一个包含5个学生的数组
// 输入每个学生的数据
for (int i = 0; i < 5; ++i) {
printf("请输入第%d个学生的数据:\n", i + 1);
inputStudent(&students[i]);
}
// 输出每个学生的数据
printf("\n学生的数据如下:\n");
for (int i = 0; i < 5; ++i) {
printf("第%d个学生的信息:\n", i + 1);
outputStudent(&students[i]);
}
return 0;
}
```
这样就完成了一个简单的程序,它能够通过结构体存储学生信息,并通过输入输出函数来处理这些信息。记得在实际使用中,要根据具体情况进行错误检查和异常处理,确保程序的健壮性。
阅读全文