本题要求实现一个在数组中查找指定元素的简单函数,如果找到返回指定元素的地址,否则返回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 15:02:52 浏览: 51
```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()来通过上述样例测试程序。
C语言实现:【问题描述】在数组中查找指定元素:输入一个正整数n(1<n<=10),然后输入n个整数存入数组a中,再输入一个整数x,在数组a中查找x,如果找到则输出相应的下标,否则输出“no found". 要求定义并调用函数search(list,n,x),它的功能是在数组list中查找元素x,若找到则返回相应下标,否则返回-1.试编写相应程序。请使用指针。 【样例输入】 3 1 2 -6 2 【样例输出】 1 【样例输入】 5 1 2 2 5 4 0 【样例输出】 no found
以下是实现代码:
```c
#include <stdio.h>
int search(int *list, int n, int x) {
int i;
for (i = 0; i < n; i++) {
if (*(list + i) == x) {
return i;
}
}
return -1;
}
int main() {
int n, i, x, result;
int a[10];
scanf("%d", &n);
for (i = 0; i < n; i++) {
scanf("%d", &a[i]);
}
scanf("%d", &x);
result = search(a, n, x);
if (result == -1) {
printf("no found");
} else {
printf("%d", result);
}
return 0;
}
```
在这个程序中,我们定义了一个名为 `search` 的函数,它接受一个整数数组的指针、数组长度和要查找的元素值作为参数。它使用指针来遍历数组,并在找到匹配元素时返回相应的下标。如果没有找到匹配元素,则返回 -1。
在程序的主函数中,我们首先读取输入的数组和要查找的元素值。然后,我们调用 `search` 函数来查找元素,并将结果存储在变量 `result` 中。最后,我们根据 `result` 的值打印出相应的输出。
需要注意的是,在 `search` 函数中,我们使用了指针算术运算来遍历数组中的元素。具体来说,我们使用 `*(list + i)` 来访问数组中第 `i` 个元素,其中 `list` 是数组的指针。
阅读全文