🔆一) 题目要求
函数接口定义:
int search( int list[], int n, int x );
其中list[]是用户传入的数组;n(≥0)是list[]中元素的个数;x是待查找的元素。如果找到
则函数search返回相应元素的最小下标(下标从0开始),否则返回−1。
裁判测试程序样例:
#include <stdio.h> #define MAXN 10 int 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); else printf("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; }