本题要求实现一个在数组中查找指定元素的简单函数,如果找到返回指定元素的地址,否则返回0。 样例输入 复制 5 10 20 50 40 30 50 样例输出 复制 index = 2 提示 函数接口定义: int* search( int list[], int n, int x ); 其中list[]是用户传入的数组;n(≥0)是list[]中元素的个数;x是待查找的元素。如果找到 则函数search返回相应元素的地址,否则返回空地地址0。 裁判测试程序样例: #include <stdio.h> #define MAXN 10 int* search( int list[], int n, int x ); int main() { int i, n, x, *p; int a[MAXN]; scanf("%d", &n); for( i = 0; i < n; i++ ) scanf("%d", &a[i]); scanf("%d", &x); p = search( a, n, x ); if( p != 0 ) printf("index = %d\n", p-a); else printf("Not found\n"); return 0; } // 以下是你提交的代码
时间: 2024-01-20 19:02:52 浏览: 44
```c
int* search(int list[], int n, int x) {
for (int i = 0; i < n; i++) {
if (list[i] == x) {
return &list[i];
}
}
return 0;
}
```
相关问题
本题要求实现一个在数组中查找指定元素的简单函数。 函数接口定义: 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 ); i
这道题要求实现一个在数组中查找指定元素的简单函数。函数接口如下:int search(int list[], int n, int x),其中list[]是用户传入的整数数组,n(≥0)是list[]中元素的个数,x是待查找的元素。如果找到,则函数返回相应元素的最小下标(下标从0开始),否则返回-1。
以下是判断测试程序样例:
#include <stdio.h>
#define maxn 10
int search(int list[], int n, int x);
int main() {
int i, idx, x, n, caseno = 0;
int a[maxn] = {10, 8, 6, 4, 2, 9, 7, 5, 3, 1};
while (scanf("%d%d", &x, &n) == 2 && n > 0) {
for (i = 0; i < n; i++) scanf("%d", &a[i]);
printf("Case %d: Looking for %d\n", ++caseno, x);
idx = search(a, n, x);
if (idx == -1) printf("%d not found\n", x);
else printf("%d found at index %d\n", x, idx);
}
return 0;
}
请实现函数search()来通过上述样例测试程序。
6-10 在数组中查找指定元素 (10 分)
题目描述:
给定一个数组和一个指定元素,编写一个函数来查找该元素是否在数组中出现。
输入格式:
第一行输入一个整数 n,表示数组的长度。
第二行输入 n 个整数,表示数组中的元素。
第三行输入一个整数 x,表示要查找的元素。
输出格式:
如果该元素在数组中出现,则输出 true,否则输出 false。
样例输入:
5
1 2 3 4 5
3
样例输出:
true
样例输入:
5
1 2 3 4 5
6
样例输出:
false
解题思路:
遍历整个数组,如果找到了指定元素,就返回 true,否则返回 false。
参考代码:
阅读全文