【C语言入门】将15个数按由大到小的顺序存放在一个数组中,输入一个数,要求用折半查找法找出该数是数组中第几个元素。 如果该数不在数组中,则输出“无次数”。
5条回答 默认 最新
- 社区专家-Monster-XH 2023-12-22 13:07关注
基于Monster 组和AIGC的调写:若有帮助,还望采纳~~:
#include <stdio.h> int binarySearch(int arr[], int n, int target) { int left = 0; int right = n - 1; while (left <= right) { int mid = left + (right - left) / 2; if (arr[mid] == target) { return mid + 1; // 返回元素位置(从1开始计数) } else if (arr[mid] < target) { left = mid + 1; } else { right = mid - 1; } } return -1; // 如果找不到,返回-1表示"无次数" } int main() { int arr[15]; int n = 15; // 数组长度 int i, target; printf("请输入15个数按由大到小的顺序存放在数组中:\n"); for (i = 0; i < n; i++) { scanf("%d", &arr[i]); } printf("请输入要查找的数:\n"); scanf("%d", &target); int result = binarySearch(arr, n, target); if (result != -1) { printf("该数在数组中第 %d 个位置。\n", result); } else { printf("无次数。\n"); } return 0; }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 求:可不可以提供一些 在国内可以用,低代码不要太难 在电脑上可以下载的 制作app的软件
- ¥60 找人回答kibana8.14.3二次集成开发,自定义插件ui导航栏如何设置
- ¥15 fluke高精度万用表8845A型号测交流电压一直跳动,且去掉输入后显示不归零
- ¥15 不同模型怎么用同一个shader
- ¥15 安卓启动没有ais proxy与v4l2的log打印
- ¥15 go怎么读取mdb文件里面的数据
- ¥60 Matlab联合CRUISE仿真编译dll文件报错
- ¥15 脱敏项目合作,ner需求合作
- ¥15 脱敏项目合作,ner需求合作
- ¥30 Matlab打开默认名称带有/的光谱数据