定义一个长度为100的int型数组

定义一个长度为100的int型数组,数组中前n(n>=1&&n<=100)个元素已经从小到大有序排列。输入一个整数x,使用二分查找法在该数组中查找和x相等的元素。如果在数组中找到,输出找到的第一个元素的下标;否则,输出“Not Found”。

望采纳,谢谢,代码:

#include<stdio.h>

int brnary_search(int arr[], int k, int sz)//int 这个函数返回整数,注:(int arr[]接收实参数组的第一个元素地址),数组传参数不会把这个数组全部传上去,而是把数组元素首个地址传上去。
{
    int left = 0;//数组的左下标
    int light = sz - 1;//数组的右下标,因为sz代表数组元素的个数,因为数组下标从0开始,使用最右下标应该-1;
    while (left <= light)//循环条件左下标必须小于或等于才能进入循环。
    {
        int mid = (left + light) / 2;//每次求中间的下标
        if (arr[mid] < k)//判断中间下标对应的元素值小于查找k的值。
        {
            left = mid + 1;//中间下标+1,为下次循环left的值
        }
        else if (arr[mid] > k)//判断中间下标对应的元素值大于查找k的值
        {
            light = mid - 1;//上面判断所查找的值小,所以新的范围应该在左边,左边下标不变,右边下标为中间下标-1;
        }
        else
        {
            return mid;//查找的值与数组值相等,返回数组下标,
        }
    }
    return -1;//当查找左下标超过右下标,代表查询整数不在数组范围内,返回-1;
}

//排序函数
void reserve(int x[], int n) {
    int i, j, temp;
    for (i = 0; i < n - 1; i++) {     //一共n个元素,则需要比较n-1次
        for (j = 0; j < n - 1 - i; j++) {     //每一个元素需要比较的次数
            if (x[i] < x[i + j + 1]) {
                temp = x[i];
                x[i] = x[i + j + 1];
                x[i + j + 1] = temp;
            }
        }
    }
}


int main() {
    int arr[] = { 1,87,54,56,76,675,43,2,3,4,5,6,7,8,9,10 };//定义数组
    int k = 0;
    int n = 10;
    //对前n个进行排序
    reserve(arr, 10);

    printf("请输入想查找的整数:");
    scanf("%d", &k);//从键盘获取要查找的整数 
    //int sz = sizeof(arr) / sizeof(arr[0]);//求出数组里元素的个数。
    int ret = brnary_search(arr, k, n);//创建ret 变量来接收查找返回值()里的元素代表要传的实参数。
    if (-1 == ret)//判断返回值是否等于-1;
    {
        printf("Not Found");
    }
    else
    {
        printf("找到了,下标为:%d\n", ret);//定义函数返回的数组下标。
    }
    return 0;

}

效果:

img

#include<bits/stdc++.h>
using namespace std;
int q[100],qq,qqq;
int main(){
cout<<"请输入有多少个数: ";
cin>>qq;
cout<<endl<<"请输入哪"<<qq<<"个数:"<<endl;
for(int i=1;i<=qq;i++)cin>>q[i];
cout<<"请输入要在数组中寻找的数:";
cin>>qqq;
int yong=1;
for(int i=1;i<=qq;i++){
if(qqq==q[i]){
cout<<"这个数在数组中是第"<<i<<"个";
yong=2;
break;}
}
if(yong==1)cout<<"Not Found";
return 0;
}