m0_63806909 2021-12-14 13:53 采纳率: 90%
浏览 79
已结题

给定15个按从小到大已经有序的整数,将其放在一个数组中。另外输入一个整数,要求使用折半查找法找出该数是数组中的第几个元素的值。如果该数不在数组中,则输出“NO”。

#include<stdio.h>
#define N 15
int main()
{
int i,j,n;
int a[N];
for(i=0;i<N;i++)
scanf("%d",&a[i]);
scanf("%d",&n);
for(i=0;i<N;i++)
{if(a[i]==n)
{
printf("%d\n",i);
break;
}
else
{
printf("NO\n");
break;
}
}
return 0;
}
//我想问问我这个写法为什么不行,谢谢帮忙解答!

  • 写回答

1条回答 默认 最新

  • 南七灵 2021-12-14 13:58
    关注

    让你用二分法,你直接遍历的肯定不对
    二分法有模板的,自己去搜一下

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月22日
  • 已采纳回答 12月14日
  • 创建了问题 12月14日