求答案请帮帮忙
有15个数按由大到小的顺序存放在一个数组中,输入一个数,用折半查找法找出该数是数组中第几个元素的值.如果该数不在数组中,则输出“无此数”。
#define LONG 15
int intcmp(const void *v1,const void *v2);
#include<stdlib.h>
#include<conio.h>
#include<stdio.h>
void main()
{
int a[LONG];
int i,*loc,number_;
for(i=0;i<LONG;i++)
scanf("%d",a+i);
qsort(a,LONG,sizeof(a[LONG]),intcmp);
for(i=0;i<LONG;i++)
printf("%-6d",a[i]);
printf("\n");
scanf("%d",&number_);
loc=(int *)bsearch(&number_, a,LONG,sizeof(a[LONG]),intcmp);
if(loc!=NULL)
printf("该数的位置是%d",loc-a);
else
printf("NO");
getch();
}
int intcmp(const void *v1,const void *v2)
{
return (*(int *)v2-*(int *)v1);
}
这是我写的程序,不知道是否符合作者的心意!!!