使用简单的c语言编写上面的程序
时间: 2024-10-24 21:16:00 浏览: 8
用C语言编写通讯录.pdf
5星 · 资源好评率100%
在C语言中,由于缺乏内置的数据结构如列表或字典,我们可以使用数组或者结构体来实现类似的功能。这里是一个基本的示例,它使用结构体表示学生记录,并有一个函数来遍历并打印这些记录。
```c
#include <stdio.h>
// 定义学生结构体
typedef struct {
int num;
char name[50];
float score;
} Student;
// 打印学生记录
void print_student_records(Student students[], int size) {
for (int i = 0; i < size; i++) {
printf("学号: %d, 姓名: %s, 分数: %.2f\n", students[i].num, students[i].name, students[i].score);
}
}
// 主函数
int main() {
int num_count;
printf("请输入学生数量: ");
scanf("%d", &num_count);
// 为每个学生分配空间
Student students[num_count];
for (int i = 0; i < num_count; i++) {
printf("请输入学生的第%d位学号: ", i+1);
scanf("%d", &students[i].num);
printf("请输入学生的第%d位姓名: ", i+1);
fgets(students[i].name, sizeof(students[i].name), stdin); // 注意这里需要去掉换行符
students[i].name[strcspn(students[i].name, "\n")] = '\0'; // 去掉fgets带来的换行符
printf("请输入学生的第%d位分数: ", i+1);
scanf("%f", &students[i].score);
}
// 打印学生记录
print_student_records(students, num_count);
return 0;
}
```
注意在C语言中,输入和输出字符串时需要额外处理,这里通过`fgets`来获取输入,并手动去掉换行符。此外,由于数组大小固定,如果输入的学生数量超过数组大小,程序可能会出现问题。
阅读全文