#include <stdio.h>
int main()
{
int a[15], m, min, mid, max,k=0;
printf("请输入15个从大到小的整数:");
for (int i = 0; i < 15; i++)
scanf("%d", &a[i]);
printf("请输入要查找的数m=:");
scanf("%d", &m);
min = 0; max = 14;
while (max >= min)
{
mid = (max + min) / 2;
if (a[mid] > m) min = mid + 1;
else if (a[mid] < m) max = mid - 1;
else if (a[mid] == m) { printf("%d是第%d个元素\n", m, mid + 1),k = 1; break; }
}
if (k==0)
printf("无此数!");
}
注意:折半查找要求查找的数组是顺序的。