实现search()函数实现查找有序数组中是否包含某个元素,如果包含打印出该数组元素下标,如果不包含,则打印“数组中无该元素”。 并在主函数中完成调用。

#include <stdio.h>
void print(int arr[],int n){
……(打印数组)
printf("\n");
}
void reverse(int arr[],int n){
int left = 0;
int right = n-1;
……(实现数组转置)
}
void sort(int arr[],int n){
int i =0,j=0;
int tmp=0;
……(实现冒泡排序过程)
}
int search(int arr[],int n,int key){ //key为要查找的元素
int index = -1;
……(具体查找过程实现)
return index; //(函数返回值)
}
int main()
{
int sz=0;
sz = ……(计算数组长度)
print(arr,sz);
……(调用转置函数reverse)
…… (调用打印函数print)
……(调用冒泡排序函数sort)
……(调用打印函数print)
printf("请输入一个数值: ");
……从键盘接收输入一个数值
……(调用查找函数search在数组中查找从键盘输入的值)
if( …判断条件… ){
printf("数组中无该元素\n");
}else{
…… 打印找到的数组下标
}
return 0;
}

#include <stdio.h>
void print(int arr[], int n) {
    int i;
    for(i = 0; i < n; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");
}
void reverse(int arr[], int n) {
    int left = 0;
    int right = n - 1;
    int t;
    for(; left < right; left++, right--) {
        t = arr[left];
        arr[left] = arr[right];
        arr[right] = t;
    }
}
void sort(int arr[], int n) {
    int i = 0, j = 0;
    int tmp = 0;
    for(i = 0; i < n - 1; i++) {
        for(j = 0; j < n - i - 1; j++) {
            if(arr[j] > arr[j + 1]) {
                tmp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = tmp;
            }
        }
    }
}
int search(int arr[], int n, int k) {
    int i;
    for(i = 0; i < n; i++) {
        if(arr[i] == k) {
            return i;
        }
    }
    return -1;
}
int main() {
    int sz = 0, k;
    int arr[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    sz = sizeof(arr) / sizeof(arr[0]);
    printf("原数组:\n");
    print(arr, sz);
    reverse(arr, sz);
    printf("逆置后数组:\n");
    print(arr, sz);
    sort(arr, sz);
    printf("排序后数组:\n");
    print(arr, sz);
    printf("输入你要查询的元素:\n");
    scanf("%d", &k);
    int p = search(arr, sz, k);
    if(p==-1){
        printf("数组中无该元素\n");
    }else{
        printf("%d",p);
    }
    return 0;
}