用c语言实现:已知有11名学生成绩如下:55,60,65,66,70,74,78,80,85,90,95,利用折半查找算法查找成绩为70的学生序号
时间: 2023-06-05 20:05:11 浏览: 145
C语言项目:基于C语言实现的学生成绩管理系统源码控制台版本分享给需要的同学
折半查找算法(二分查找)是一种效率较高的查找算法,它要求被查找序列为有序序列。以下是用C语言实现折半查找算法查找成绩为70的学生序号的代码:
```c
#include <stdio.h>
int binary_search(int arr[], int len, int target)
{
int low = 0;
int high = len - 1;
int mid;
while (low <= high) {
mid = (low + high) / 2;
if (arr[mid] == target) {
return mid;
} else if (arr[mid] > target) {
high = mid - 1;
} else {
low = mid + 1;
}
}
return -1; // 如果没找到,返回-1
}
int main()
{
int arr[11] = {55, 60, 65, 66, 70, 74, 78, 80, 85, 90, 95};
int len = sizeof(arr) / sizeof(int);
int target = 70;
int index = binary_search(arr, len, target);
if (index == -1) {
printf("没有找到成绩为%d的学生\n", target);
} else {
printf("成绩为%d的学生序号是%d\n", target, index);
}
return 0;
}
```
运行结果为:
```
成绩为70的学生序号是4
```
阅读全文