Based on the last exercise, write a function named "input" to input those student records.
时间: 2024-10-24 21:16:08 浏览: 13
基于Halcon的金属零件矩形度检测算法研究
根据上一个练习的要求,我们可以创建一个名为`input_student_records`的函数,用于接收用户输入的学生记录。这里假设我们已经有了之前定义的`Student`结构体。下面是一个简单的C函数实现:
```c
#include <stdio.h>
#include<string.h> // 包含字符串操作函数
typedef struct {
int num;
char name[50];
float score;
} Student;
// 输入学生记录的函数
void input_student_records(Student *students, int *size) {
*size = 0; // 初始化学生记录数量
while (1) { // 循环直到用户明确表示输入结束
printf("请输入学生的学号(0表示结束输入): ");
int学号;
if (scanf("%d", &学号) == EOF ||学号 == 0) break; // 如果输入EOF(如按Ctrl+D)或者学号为0,退出循环
*size++; // 每次输入一个新学生,增加记录数量
students[*size - 1].num = 学号;
printf("请输入学生的姓名: ");
fgets(students[*size - 1].name, sizeof(students[*size - 1].name), stdin); // 使用fgets处理换行符
students[*size - 1].name[strcspn(students[*size - 1].name, "\n")] = '\0'; // 去除多余的换行符
printf("请输入学生的分数: ");
scanf("%f", &students[*size - 1].score);
}
}
int main() {
int num_records;
input_student_records(&students, &num_records); // 调用输入函数
// 然后你可以用num_records打印所有学生记录
print_student_records(students, num_records);
return 0;
}
```
这个函数首先初始化记录数量为0,然后进入一个无限循环,直到用户输入0表示停止输入。每次迭代都会读取一个学生的信息并将其添加到`students`数组中。
阅读全文