以下是使用C语言编写的代码,实现在给定的有序数组中查找用户输入的值,并提示相应的查找结果。

#include <stdio.h>

int binarySearch(int arr[], int left, int right, int target) {
    while (left <= right) {
        int mid = left + (right - left) / 2;

        // 检查中间元素是否是目标值
        if (arr[mid] == target) {
            return mid;
        }

        // 如果目标值在左半部分,则继续在左半部分进行二分查找
        if (arr[mid] > target) {
            right = mid - 1;
        }
        // 如果目标值在右半部分,则继续在右半部分进行二分查找
        else {
            left = mid + 1;
        }
    }

    // 目标值不存在于数组中
    return -1;
}

int main() {
    int arr[] = {1, 3, 5, 7, 9, 11, 13, 15, 17, 19};
    int n = sizeof(arr) / sizeof(arr[0]);

    int target;
    printf("请输入要查找的值:");
    scanf("%d", &target);

    int result = binarySearch(arr, 0, n - 1, target);

    if (result == -1) {
        printf("目标值 %d 不存在于数组中。\n", target);
    } else {
        printf("目标值 %d 在数组中的索引位置为 %d。\n", target, result);
    }

    return 0;
}

在上述代码中,我们使用了二分查找算法来在给定的有序数组中查找目标值。首先,我们定义了一个binarySearch函数来执行二分查找。该函数接受一个有序数组arr、查找范围的左边界left、查找范围的右边界right和目标值target作为参数。函数返回目标值在数组中的索引位置,如果目标值不存在于数组中,则返回-1。

main函数中,我们定义了一个有序数组arr,并计算出数组的长度n。然后,我们提示用户输入要查找的值,并将其存储在变量target中。接下来,我们调用binarySearch函数来进行查找,并将结果存储在变量result中。

最后,我们根据result的值来输出相应的查找结果。如果result为-1,则表示目标值不存在于数组中;否则,我们输出目标值在数组中的索引位置。

请注意,以上代码假设输入的有序数组是升序排列的。如果输入的有序数组是降序排列的,需要相应地修改二分查找算法的逻辑。

用c语言编辑代码实现以下功能在给定的有序数组中查找用户输入的值 并提示相应的查找结果。

原文地址: https://www.cveoy.top/t/topic/hDFM 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录