有一列数据,请编程按升序排序;然后输入一个数后,按原来排序的规律将它插入到数列中;

再输入一个数,要求用折半查找法找出该数是数列中的第几个元素,如果该数不在数列中,则输出"无此数".
用C语言编程
1,先按升序排序,
2,再输入一个数,按原规律插入,
3,再输入一个数,用折半法查找

第1个回答  2014-09-08
#include<stdio.h>
void main()
{
int zhe_ban(int a[15],int n);
int a[15]={1,13,26,34,40,51,61,78,84,90,104,117,126,134,149};
int m,n;
printf("请输入M的值:\n");
scanf("%d",&m);
n=zhe_ban(a,m);
if(n==0)
printf("无数次\n");
else
printf("该数是第%d个\n",n+1);
printf("\n如果满意请记得给分\n");

}
int zhe_ban(int a[15],int n)
{int s=0,b=14,t=0,mid; mid = ( s+b )/2; while(a[mid]!=n) { if(n>a[mid]) mid=(mid+b)/2; if(n<a[mid]) mid=(mid+s)/2; if(mid==s || mid==b) break; }
if(a[mid]==n)
t=mid;
return(t);

}
希望可以帮助到你追问

你没有先排序,也没有插入啊,只是折半法查找了吧

相似回答