实现一个在数组中查找指定元素的简单函数

  • 一) 题目要求
  • 二) 题解

一) 题目要求

函数接口定义:
int search( int list[], int n, int x );

其中list[]是用户传入的数组;n(≥0)是list[]中元素的个数;x是待查找的元素。如果找到

则函数search返回相应元素的最小下标(下标从0开始),否则返回−1。

裁判测试程序样例:
#include #define MAXN 10int search( int list[], int n, int x );int main(){int i, index, n, x;int a[MAXN];scanf("%d", &n);for( i = 0; i < n; i++ )scanf("%d", &a[i]);scanf("%d", &x);index = search( a, n, x );if( index != -1 )printf("index = %d\n", index);elseprintf("Not found\n");return 0;}/* 你的代码将被嵌在这里 */

二) 题解

思路:
从0到n-1遍历list,如果list[i]等于x,返回 i(return i 就直接结束这个函数了,不会继续循环)
如果list中没找到x,返回-1(这里用flag,详见↓)

int search( int list[], int n, int x ){int i = 0;int flag = 0;for(i = 0;i<n;i++){if(list[i]==x){flag = 1;return i;}}if(flag == 0)return -1;}