C语言编程题,求解答!(要求写出详细注释)

2024-12-03 10:01:42
推荐回答(2个)
回答(1):

#include
void main()
{
int in[15],ins,i,k=14,j=0;
printf("请按照从小到大的顺序输入15个数\n");
for(i=0;i<15;i++) scanf("%d",&in[i]);
printf("请输入要查找的数:");
scanf("%d",&ins);
i=(j+k)/2;
while(j<=k)
{
if(in[i]>ins)
k=i-1;
else
if(in[i] j=i+1;
else break;
i=(j+k)/2;
}
printf("你查找的是其中的第%d个数。",i+1);/*i是他的存储的顺序数,i+1才是他在输入数组中的位置数*/
}

回答(2):

#include
int main()
{
int i,n,a[10],left,right,middle;
printf("请输入数组数据: ");//当前数组长度为10
for(i=0;i<10;i++)
scanf("%d",&a[i]);
left=0;right=9;
printf("输入要查找的数: ");
scanf("%d",&n);
while(left<=right){
middle=(left+right)/2;
if(a[middle]==n)
{
printf("%d的下标为:%d\n",a[middle],middle);
break;
}
else if(n>a[middle])
left=middle+1;
else
right=middle-1;
}
if(left>right)
printf("无此数\n");
return 0;
}