回复 1# 的帖子
#include<stdio.h>
void main()
{
int arrange(int a[]);
int m=19,n=0,num,t,i,k=1,a[20]={0};
printf("请输入一个数组:");
/*输入一个20个数的数组给a*/
for(i=0;i<20;i++)
{
scanf("%d",&a[i]);
}
//arrange(a);
/*数组a原样输出*/
for(i=0;i<20;i++)
{
printf("%d ",a[i]);
}
/*输入要找的数num*/
printf("please input a number:");
scanf("%d",&num);
/*折半查找*/
while(m-n>1)
{
t=(m+n)/2;
if(num==a[t])
break;
else if(num<a[t])
m=t;
else
n=t;
}
if(num==a[t+1]) printf("在原始数组中找到了你要找的数字%d,它是数组的第%d元素.\n",num,t+1);
else if(num==a[t-1])printf("在原始数组中找到了你要找的数字%d,它是数组的第%d元素.\n",num,t);
else if(num==a[t])printf("在原始数组中找到了你要找的数字%d,它是数组的第%d元素.\n",num,t+1);
else
printf("在原始数组中没有找到你要找的数字%d\n",num);
}
/*int arrange(int a[])
{
int i,t,k;
/*数组a从在大到时小排序
do
{
for(i=0;i<19;i++)
{
if(a[i]>a[i+1]){t=a[i+1];a[i+1]=a[i];a[i]=t;}
}
k++;
}while(k<20);
return a;
}*/