且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

寻找指定元素

更新时间:2022-04-06 01:26:01

版权声明:您好,转载请留下本人博客的地址,谢谢 https://blog.csdn.net/hongbochen1223/article/details/45648537

在已知数表中找出第一个与指定值相等的元素的下标和指针。这个实例还是比价简单的。

我的思路是,首先创建一个struct结构,该结构中有两个成员变量,一个是数组元素的下标,一个是数组元素的指针值,当程序进程查找的时候,将找到的结果保存到该结构上。下面是我的程序的实现部分:

#include <stdio.h>

#define SIZE 100

/**
 * @brief The element struct
 *  元素的结构,包括元素的下标和元素的指针
 */
struct element{
    int subScript;
    int p;
};

/**
 * @brief Search 在数组array中,寻找第一个与key相等的元素的下标和指针
 * @param key 要寻找第一个与key相等的元素
 * @param array 要被寻找的数组
 * @param n 数组array中有几个元素
 * @return 返回含有元素下标和指针的结构
 */
struct element Search(int key,int array[],int n){
    int i = 0;

    struct element ele;

    for(i = 0;i < n;i++){
        if(key == array[i]){

            ele.subScript = i;
            ele.p = &array[i];

            return ele;
        }
    }

    return ele;
}

/**
 * 在已知数表中找出第一个与指定值相等的元素的下标
 * 和指针
 * @brief main
 * @return
 */
int main(void)
{
    int n;
    int i;
    int key;
    int array[SIZE];

    printf("Please enter the length of the array:\n");
    scanf("%d",&n);

    printf("Please enter the lements of the array:\n");
    for(i = 0;i < n;i++){
        scanf("%d",&array[i]);
    }

    printf("Please enter the key for searching:\n");
    scanf("%d",&key);

    struct element searched = Search(key,array,n);

    //查看是否已经查到匹配的元素
    if(searched.p == 0){
        printf("There is no element equals to key!!\n");
    }else{
        printf("The subscript of the element is %d.\n",searched.subScript);
        printf("The pointer of the element is %d.\n",searched.p);
    }
    return 0;
}

下面是我的程序运行的截图:

寻找指定元素