C语言编程问题 急需!!!!!!!在线等

来源:百度知道 编辑:UC知道 时间:2024/05/06 18:37:03
编写程序,对于一个有10个数组元素且各数组元素的值已按升序排列的一维数组a,用折半查找法查找其值等于指定值的数组元素。若找到 ,则输出其下标值,否则 ,输出“数组中无此数”。
要是能搜到就不会问了
你要是能帮我搜到就贴在这吧
我只想要此题的答案
谢了

#include <stdio.h>
#define N 10

int binary_search(int a[], int key, int left, int right);//二分查找(折半查找)
void bubble_sort(int a[]);//从小到大排序

int main(void)
{
int i, key, a[] = {74, 5, 45, 2, 21, 6, 7, 8, 15, 10};

printf("Enter search number:\n");
scanf("%d", &key);
bubble_sort(a);
i = binary_search(a, key, 0, N - 1);

printf("i = %d\n", i);

return 0;
}

int binary_search(int a[], int key, int left, int right)
{
int mid;
mid = (left + right) / 2;

if (left > right)
return -1;
else if (left <= right)
{
if (a[mid] == key)
return mid;
else if (a[mid] > key)
binary_search(a, key, left, mid - 1);
else if (a[mid] < key)
binary_search(a, key, mid + 1, right);
}
}

void bubble_sort(int a[])
{
int i, j, temp;