c语言折半查找学生成绩代码
时间: 2024-12-20 18:12:56 浏览: 54
在C语言中,折半查找(也称二分查找)通常用于有序数组中快速找到特定元素。以下是一个简单的折半查找成绩的示例代码,假设我们有一个按升序排列的成绩数组`score[]`和其长度`n`:
```c
#include <stdio.h>
// 假设成绩数组已排序
int binarySearch(int arr[], int n, int target) {
int low = 0;
int high = n - 1;
// 当低索引小于等于高索引时继续查找
while (low <= high) {
int mid = low + (high - low) / 2; // 计算中间位置
if (arr[mid] == target) { // 找到目标值
return mid;
} else if (arr[mid] < target) { // 如果中间值小,缩小左半部分范围
low = mid + 1;
} else { // 否则,缩小右半部分范围
high = mid - 1;
}
}
// 没有找到目标值,返回-1表示不在数组内
return -1;
}
int main() {
int scores[] = {60, 75, 85, 90, 95, 100};
int n = sizeof(scores) / sizeof(scores[0]);
int targetScore = 90; // 要查找的成绩
int index = binarySearch(scores, n, targetScore);
if (index != -1) {
printf("学生分数 %d 的位置是 %d\n", targetScore, index + 1); // +1 因为数组下标从0开始
} else {
printf("找不到该成绩.\n");
}
return 0;
}
```
在这个代码中,函数`binarySearch`接受一个成绩数组、数组长度以及要查找的目标分数。它不断将查找区间缩小,直到找到目标或确定目标不在数组中。
阅读全文
相关推荐


















