在C语言中查找分数段的学生成绩,可以通过以下方法实现:
一、统计各分数段人数
通过循环读取每个学生的成绩,并根据分数范围统计人数。例如,60~69分、70~79分等。
输出统计结果
使用`printf`函数输出各分数段的人数分布。
二、查找特定分数段的学生
线性查找
遍历学生成绩数组,通过条件判断(如`if (score >= 80 && score <= 89)`)筛选出目标分数段的学生,并输出其学号和成绩。
折半查找
先对学生成绩进行排序,然后使用二分查找算法定位目标分数段的学生。适用于学号或成绩有序的情况。
三、示例代码
以下是一个统计分数段人数的示例代码:
```c
include
define N 100
int main() {
int n, i, count = {0}; // 分数段0~59, 60~69, 70~79, 80~89, 90~100
int score[N];
printf("输入学生人数(输入-1结束):");
scanf("%d", &n);
while (n != -1) {
scanf("%d", &score[i]);
if (score[i] >= 60 && score[i] <= 69) count++;
else if (score[i] >= 70 && score[i] <= 79) count++;
else if (score[i] >= 80 && score[i] <= 89) count++;
else if (score[i] >= 90 && score[i] <= 100) count++;
printf("输入下一个学生成绩(-1结束):");
scanf("%d", &n);
}
printf("各分数段人数:n");
for (i = 0; i < 5; i++) {
printf("%d~%d分:%d人n", 60 + i * 10, 59 + i * 10, count[i]);
}
return 0;
}
```
四、注意事项
数据结构选择: 使用结构体(如`struct student`)存储学生成绩和信息,便于管理和查找。 输入验证
扩展功能:可结合文件操作将数据持久化,或实现排序、多条件查询等进阶功能。