#include <stdio.h>
#include <stdlib.h>
#include <time.h>

#define MAX_NUM 100 // 生成随机数的范围

// 顺序查找函数
int sequential_search(int arr[], int n, int key) {
    for (int i = 0; i < n; i++) {
        if (arr[i] == key) {
            return i+1; // 返回位置
        }
    }
    return 0; // 没有找到
}

// 折半查找函数
int binary_search(int arr[], int n, int key) {
    int low = 0, high = n-1, mid;
    while (low <= high) {
        mid = (low + high) / 2;
        if (arr[mid] == key) {
            return mid+1; // 返回位置
        } else if (arr[mid] < key) {
            low = mid + 1;
        } else {
            high = mid - 1;
        }
    }
    return 0; // 没有找到
}

// 输出函数
void print_array(int arr[], int n) {
    for (int i = 0; i < n; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");
}

// 冒泡排序函数
void bubble_sort(int arr[], int n) {
    for (int i = 0; i < n-1; i++) {
        for (int j = 0; j < n-i-1; j++) {
            if (arr[j] > arr[j+1]) {
                int temp = arr[j];
                arr[j] = arr[j+1];
                arr[j+1] = temp;
            }
        }
    }
}

int main() {
    srand(time(NULL)); // 随机数种子
    int n;
    printf("请输入随机数的个数:");
    scanf("%d", &n);
    int arr[n];
    for (int i = 0; i < n; i++) {
        arr[i] = rand() % MAX_NUM + 10; // 生成两位数随机数
    }
    printf("生成的随机数为:");
    print_array(arr, n);
    int key;
    printf("请输入要查找的整数:");
    scanf("%d", &key);
    int pos = sequential_search(arr, n, key);
    if (pos) {
        printf("在查找表中的位置为:%d\n", pos);
    } else {
        printf("没有找到该整数\n");
    }
    bubble_sort(arr, n); // 排序
    printf("排序后的数组为:");
    print_array(arr, n);
    printf("请输入要查找的整数:");
    scanf("%d", &key);
    pos = binary_search(arr, n, key);
    if (pos) {
        printf("在有序表中的位置为:%d\n", pos);
    } else {
        printf("没有找到该整数\n");
    }
    return 0;
}
``
使用c语言帮我写一个程序要求如下:1随机产生n个两位整数构造一个查找表2输入一个整数利用顺序查找法在查找表中查找该整数是否存在。若查找成功返回该整数在表中的位置;查找失败则返回03对查找表按递增顺序进行排序。4输入一个整数利用折半查找法在有序表中查找该整数是否存在。若查找成功返回该整数在表中的位置;查找失败则返回0。

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

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