谢谢各位帅哥姐姐帮助解答一下c语言问题

来源:百度知道 编辑:UC知道 时间:2024/09/28 10:28:15
输入15个数存放在一个数组中,用选择排序法按从小到大的顺序排序。然后,输入一个数,要求用折半查找法找出该数是数组中第几个元素的值。如果该数不在数组中,输出“Not found”。

int main()
{
int a[15];
int temp,tt;
int mid,min,max;
int i,j,m;
printf("请为数组赋值:\n");
for(i=0; i<15; i++)
{
scanf("%d",&a[i]);
}
for(i=0; i<15; i++)
{
temp=a[i];
m=i;
for(j=i;j<15;j++)
{
if (a[m]>a[j])
{
m=j;
}
}
a[i]=a[m];
a[m]=temp;
}
for(i=0; i<15; i++)
{
printf("%d ",a[i]);
}
printf("\n输入您要查找的数\n");
scanf("%d",&tt);
max=15;
min=0;
if (tt<a[0] || tt>a[14])
{
printf("NO found\n");
return 0;
}
else
{
while((max - min)>1)
{
mid=(min+max)/2;
if (tt > a[mid])
{
min=mid;
mid=(min+max)/2;
}
else if (tt < a[mid])
{
max=mid;
mid=(min+m