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日

悬赏问题

  • ¥15 Mac版Fiddler Everywhere4.0.1提示强制更新
  • ¥15 android 集成sentry上报时报错。
  • ¥50 win10链接MySQL
  • ¥35 跳过我的世界插件ip验证
  • ¥15 抖音看过的视频,缓存在哪个文件
  • ¥15 自定义损失函数报输入参数的数目不足
  • ¥15 如果我想学习C大家有是的的资料吗
  • ¥15 根据文件名称对文件进行排序
  • ¥15 deploylinux的ubuntu系统无法成功安装使用MySQL❓
  • ¥15 有人会用py或者r画这种图吗