编写C语言程序
15个由小到大排列的数组中,插入一个数,用折半查找法输出该数是第几个元素的值,可能没有
定义好的数组的个数不能改变,所以,插入不了。
函数返回值的地方,不应该给mid+1
程序如下,假设数据是整数,如果找不到的话,就输出0。先输入15个从小到大的整数,然后再输入一个要找的整数。
#include int search(int a[], int t); void main() { int array[15], i, target, position; printf("Input 15 incremental numbers:"); for (i = 0; i < 15; i++) scanf("%d", &array[i]); printf("Input a target:"); scanf("%d", &target); position = search(array, target); printf("%d\n", position); } int search(int a[], int t) { int low = 0, high = 14, mid; while (low <= high) { mid = (low + high)/2; if (t == a[mid]) return mid +1; else if (t < a[mid]) high = mid - 1; else low = mid + 1; } return 0; }。
答:#include #define N 15 void sort(int *p) { int i,j,temp; for(i=0;i*(p+mid)) high...详情>>