c语言有15个数,将他们按从大到小进行排序然后从键盘输入一个数字利用半折法进行查找,没找到则返回

c语言有15个数,将他们按从大到小进行排序然后从键盘输入一个数字利用半折法进行查找,没找到则返回“无此数.


#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <string.h>
int cmp(const void* a,const void *b)
{
return *(int*)b-*(int*)a;
}


void getArr(int* p,int size)
{
srand(time(NULL));
for(int i=0;i<size;i++)
p[i]=rand()%50;
}

int main(int argc,char *argv[])
{
int arr[15];
int n;
int *p;
char ch;

getArr(arr,15);
printf("the init arr:");
for(int i=0;i<15;i++)
printf("%d ",arr[i]);
qsort(arr,15,sizeof(int),cmp);
printf("\nthe sorted arr:");
for(int i=0;i<15;i++)
printf("%d ",arr[i]);


printf("\nplease input the key num:");
while(scanf("%d",&n)!=EOF)
{
p=(int*)bsearch(&n,arr,15,sizeof(int),cmp);
if(p==NULL)
{
printf("no such num\n");
}
else
{
printf("find the num\n");
}
printf("press Y to keep searching, press N to exit:");
getchar();
scanf("%c",&ch);
if(ch=='Y' || ch=='y')
{
printf("please input the key num:");
}
else
{
break;
}

}

system("PAUSE");
return 0;
}


温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-08-15
财富值不给力。
当年我学vb五十财富值让人帮我画折半查询流程图,每一个人帮忙。。。
亲,明天我回学校,代码我已经写好,回学校上网就发给你。
第2个回答  2013-08-14
你好歹写一些啊,我保证帮你改正确!
相似回答