c语言编程中遇到的疑惑

请问如何查找连续两个数组中的数

比如以下实例
假设有2个整型数组:
  list1[] = { 12, 8, 3, 5, 9, 2, 1, 0, 15, 17 };
  list2[] = { 2, 3, 6, 9, 10, 12, 15, 17, 19, 27 };
首先,分2行输出这2个数组中的元素;
然后,提示用户输入要查找的整数,存放在变量n中;
接着,使用顺序查找法在list1中查找n,如果找到,输出其位置,如果没有,则提示用户:“该数值在list1中不存在”;
最后,使用二分查找法在list2中查找n,如果找到,输出其位置,如果没有,则提示用户:“该数值在list2中不存在”;

这个问题回答过了。

  • 以下回答由chatgpt基于相关博客总结生成:
    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
        //定义数据存储数组
        int arr1[] = {0, 3, 4, -1, 6, 2, 3};
        int arr2[] = {2, 3, 5, 6, 8, 10, 12, 14};
        int n; //要查找的整数
    
        //输出两个数组的元素
        printf("数组1:");
        for(int i = 0; i < sizeof(arr1) / sizeof(arr1[0]); i++) {
            printf("%d ", arr1[i]);
        }
        printf("\n");
    
        printf("数组2:");
        for(int i = 0; i < sizeof(arr2) / sizeof(arr2[0]); i++) {
            printf("%d ", arr2[i]);
        }
        printf("\n");
    
        //提示用户输入要查找的整数
        printf("请输入要查找的整数:");
        scanf("%d", &n);
        //使用顺序查找法在第一个数组中查找n
        int position = -1; //记录n在第一个数组中的位置
        for(int i = 0; i < sizeof(arr1) / sizeof(arr1[0]); i++) {
            if(arr1[i] == n) {
                position = i;
                break;
            }
        }
    
        //在第一个数组中找到n
        if(position != -1) {
            printf("在第一个数组中,%d的位置是:%d\n", n, position);
        }
        //在第一个数组中未找到n
        else {
            printf("在第一个数组中,%d不存在\n", n);
        }
    
        //使用二分查找法在第二个数组中查找n
        int left = 0, right = sizeof(arr2) / sizeof(arr2[0]) - 1;
        int mid; //middle中间位置
        position = -1;
        while(left <= right) {
            mid = left + (right - left) / 2;
            if(arr2[mid] == n) {
                position = mid;
                break;
            }
            else if(arr2[mid] > n) {
                right = mid - 1;
            }
            else {
                left = mid + 1;
            }
        }
    
        //在第二个数组中找到n
        if(position != -1) {
            printf("在第二个数组中,%d的位置是:%d\n", n, position);
        }
        //在第二个数组中未找到n
        else {
            printf("在第二个数组中,%d不存在\n", n);
        }
    
        return 0;
    }