用C语言编写程序,输入20名学生的身高(单位为cm),统计并输出各个身高段的人数,身高段分150以下(1档)、150~154(2档)、155~159(3档)、…、180~184(8档)、185~189(9档)、189(10档)以上10个档次。要求程序中尽可能简短,程序可不考虑输入数据错误。 【输入形式】 输入20名学生的身高,其间以1个空格分隔。 【输出形式】 顺序输出档次及档次所在人数,其间以1个空格分隔。档次之间换行。
时间: 2023-06-20 09:05:59 浏览: 281
以下是用C语言编写的程序,可以实现输入20名学生的身高,统计各个身高段的人数,并输出各个身高段的人数:
```c
#include <stdio.h>
int main()
{
int height, count[10] = {0};
for (int i = 0; i < 20; i++)
{
scanf("%d", &height);
if (height < 150)
count[0]++;
else if (height <= 189)
count[(height - 150) / 5 + 1]++;
else
count[10]++;
}
for (int i = 0; i < 10; i++)
printf("%d %d\n", i + 1, count[i]);
return 0;
}
```
程序中使用了一个名为 `count` 的数组来统计每个身高段的人数。在读入每个学生的身高之后,通过一系列的判断将其归入对应的身高段,并将该身高段的人数加1。
最后,遍历 `count` 数组,将每个身高段的人数依次输出即可。
相关问题
用c语言编写程序,由用户输入身高和体重值,输出相应的BMI分类
下面是一个简单的C语言程序,可以根据用户输入的身高和体重值,计算BMI并输出相应的分类:
```c
#include <stdio.h>
int main() {
float height, weight, bmi;
printf("请输入您的身高(单位:米):");
scanf("%f", &height);
printf("请输入您的体重(单位:千克):");
scanf("%f", &weight);
bmi = weight / (height * height);
if (bmi < 18.5) {
printf("您的BMI值为%.2f,属于体重过轻\n", bmi);
} else if (bmi < 24) {
printf("您的BMI值为%.2f,属于正常范围\n", bmi);
} else if (bmi < 28) {
printf("您的BMI值为%.2f,属于超重\n", bmi);
} else {
printf("您的BMI值为%.2f,属于肥胖\n", bmi);
}
return 0;
}
```
该程序首先提示用户输入身高和体重值,然后计算BMI值并根据不同的BMI值输出相应的分类。具体的判断标准如下:
- BMI < 18.5,体重过轻
- 18.5 <= BMI < 24,正常范围
- 24 <= BMI < 28,超重
- BMI >= 28,肥胖
注意:本程序仅供参考,实际应用中需要根据具体情况进行修改和完善。
编写C语言程序,输入每个学生的学号和身高,保存在二进制文件中,并统计每个身高的人数打印出来
### 回答1:
好的,以下是编写 C 语言程序的建议步骤:
1. 首先,包含必要的头文件,如 stdio.h 和 stdlib.h,并声明所需的函数:
```
#include <stdio.h>
#include <stdlib.h>
void saveToBinaryFile(int id, int height);
int countHeight(int height);
```
2. 然后,编写 main 函数,在其中提示用户输入学生的学号和身高,并调用 saveToBinaryFile 函数将信息保存到二进制文件中:
```
int main(void) {
int id, height;
printf("请输入学生的学号和身高:\n");
while (scanf("%d%d", &id, &height) == 2) {
saveToBinaryFile(id, height);
}
return 0;
}
```
3. 接下来,编写 saveToBinaryFile 函数,用于将学生的学号和身高保存到二进制文件中。首先,打开文件并使用 fwrite 函数将数据写入文件:
```
void saveToBinaryFile(int id, int height) {
FILE *fp = fopen("students.dat", "ab");
if (fp == NULL) {
perror("Error opening file");
return;
}
fwrite(&id, sizeof(int), 1, fp);
fwrite(&height, sizeof(int), 1, fp);
fclose(fp);
}
```
4. 最后,编写 countHeight 函数,用于统计身高为特定值的学生数量。首先,打开文件并使用 fread 函数读取文件中的数据,然后统计身高为特定值的学生数量并返回结果:
```
int countHeight(int height) {
int id, h, count = 0;
FILE *fp = fopen
### 回答2:
要编写一个C语言程序,用于输入每个学生的学号和身高,并将其保存在一个二进制文件中。同时,程序还需要统计每个身高的人数,并将结果打印出来。
程序的主要步骤如下所示:
1. 声明一个结构体来存储学生的学号和身高信息。结构体可以如下定义:
```c
typedef struct {
int 学号;
float 身高;
} 学生信息;
```
2. 在程序中,首先要初始化一个学生信息数组。这个数组大小可以根据需求设定。
```c
学生信息 学生[100];
```
3. 接着,使用循环结构,逐个输入学生的学号和身高,并将其保存在学生信息数组中。
```c
for(int i = 0; i < 100; i++) {
printf("请输入第%d个学生的学号:", i+1);
scanf("%d", &学生[i].学号);
printf("请输入第%d个学生的身高:", i+1);
scanf("%f", &学生[i].身高);
}
```
4. 将学生信息保存在二进制文件中。使用C标准库函数`fwrite()`可以很方便地实现。
```c
FILE *文件指针;
文件指针 = fopen("学生信息.dat", "wb");
fwrite(&学生, sizeof(学生信息), 100, 文件指针);
fclose(文件指针);
```
5. 接下来,需要统计每个身高的人数,并将结果打印出来。
```c
int 人数[100]; // 用于存储每个身高的人数
// 初始化人数数组
for(int i = 0; i < 100; i++) {
人数[i] = 0;
}
文件指针 = fopen("学生信息.dat", "rb");
if(文件指针 != NULL) {
fread(&学生, sizeof(学生信息), 100, 文件指针);
for(int i = 0; i < 100; i++) {
人数[学生[i].身高]++;
}
fclose(文件指针);
// 打印统计结果
for(int i = 0; i < 100; i++) {
if(人数[i] > 0) {
printf("身高为%.2f的人有%d个\n", i, 人数[i]);
}
}
}
```
以上就是编写C语言程序的步骤,可以通过这个程序输入每个学生的学号和身高,并将其保存在二进制文件中,并统计每个身高的人数并打印出来。
### 回答3:
编写C语言程序,输入每个学生的学号和身高,保存在二进制文件中,并统计每个身高的人数打印出来。
```c
#include <stdio.h>
struct Student {
int studentId;
float height;
};
int main() {
FILE *file;
struct Student student;
int count[101] = {0}; // 身高的人数计数,数组大小为最大身高数加1
// 打开文件
file = fopen("student_data.bin", "wb");
if (file == NULL) {
printf("文件打开失败\n");
return 1;
}
// 输入学生信息,并保存在文件中
while (1) {
printf("请输入学生的学号和身高(输入0结束输入):\n");
scanf("%d", &(student.studentId));
if (student.studentId == 0) {
break;
}
scanf("%f", &(student.height));
fwrite(&student, sizeof(struct Student), 1, file);
// 统计身高的人数
int heightIndex = (int)(student.height);
count[heightIndex]++;
}
// 关闭文件
fclose(file);
// 打印每个身高的人数
printf("\n每个身高的人数统计如下:\n");
for (int i = 1; i <= 100; i++) {
if (count[i] > 0) {
printf("身高为 %d 的人数为 %d\n", i, count[i]);
}
}
return 0;
}
```
这个程序中,我们首先定义了一个结构体 `Student` ,包括学生的学号和身高。在 `main` 函数中,我们使用 `FILE` 结构体指针打开一个二进制文件,并定义了一个数组 `count` 来统计每个身高的人数。
接下来,我们通过循环不断输入学生的学号和身高,将其保存在文件中。同时,我们还根据学生的身高,更新相应身高的人数计数。
当输入学号为0时,结束输入。然后我们关闭文件,并打印出每个身高的人数统计结果。
阅读全文