编写C语言程序,输入每个学生的学号和身高,保存在二进制文件中,并统计每个身高的人数打印出来
时间: 2023-01-31 10:01:29 浏览: 104
好的,下面是编写 C 语言程序的示例代码:
```
#include <stdio.h>
#include <stdlib.h>
#define MAX_HEIGHT 180 // 定义最大身高
// 定义学生结构体
typedef struct {
int id; // 学号
int height; // 身高
} Student;
int main(int argc, char const *argv[]) {
// 定义文件指针和学生数组
FILE *fp;
Student students[MAX_HEIGHT];
// 打开二进制文件
fp = fopen("students.bin", "wb");
if (fp == NULL) {
printf("Error opening file!\n");
exit(1);
}
// 输入学生信息并保存到学生数组中
int i;
for (i = 0; i < MAX_HEIGHT; i++) {
printf("输入学生 %d 的学号: ", i + 1);
scanf("%d", &students[i].id);
printf("输入学生 %d 的身高: ", i + 1);
scanf("%d", &students[i].height);
}
// 将学生数组写入二进制文件
fwrite(students, sizeof(Student), MAX_HEIGHT, fp);
// 关闭文件
fclose(fp);
// 统计每个身高的人数
int count[MAX_HEIGHT];
for (i = 0; i < MAX_HEIGHT; i++) {
count[i] = 0;
}
// 打开二进制文件
fp = fopen("students.bin", "rb");
if (fp == NULL) {
printf("Error opening file!\n");
exit(1);
}
// 从二进制文件中读取学生信息
fread(students, sizeof(Student), MAX_HEIGHT, fp);
// 统计每个身高的人数
for (i = 0; i < MAX_HEIGHT; i++) {
count[students[i].height]++;
}
// 打印统计结果
for (i = 0; i < MAX_HEIGHT; i++) {
if (count[i] > 0) {
printf("身高
阅读全文