我要亲亲抱抱举高高 2023-12-22 12:48 采纳率: 50%
浏览 4
已结题

C能帮帮我,康康这个吧!

【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;
    }
    
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

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

悬赏问题

  • ¥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打开默认名称带有/的光谱数据