已知存放在a数组中的数都不相同,在a数组中查找和x值相同的元素的位置。若找到,输出该值和该值在a数组中的位置;若没找到,输出相应的信息。利用指针实现。
函数接口定义:
int fun(int *p, int n, int x);
其中 p 、 n 、 x 都是用户传入的参数。 函数在指针 p 所指的 数组中查找和x值相同的元素的位置。若找到,输出该值和该值在数组中的位置;若没找到,输出相应的信息。
裁判测试程序样例:
```c
#include
int fun(int *p, int n, int x);
int main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10},x,k;
scanf("%d",&x);
k=fun(a,10,x);
if(k>=0) printf("%d\n",k);
else printf("no\n");
return 0;
}
```
/* 请在这里填写答案 */
输入样例:
5
输出样例:
4
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 MB
供参考:
#include <stdio.h>
int fun(int *p, int n, int x);
int main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10},x,k;
scanf("%d",&x);
k=fun(a,10,x);
if(k>=0) printf("%d\n",k);
else printf("no\n");
return 0;
}
int fun(int *p, int n, int x)
{
int *t;
for(t = p;t < p + n; t++)
if (*t == x) break;
if (t < p + n)
return t - p;
else
return -1;
}
望采纳
int fun(int *p, int n, int x) {
int i;
for (i = 0; i < n; i++) {
if (*p == x) {
// 如果找到了和x相同的值,输出它的位置
return i;
}
p++; // 指针向后移动一个元素的位置
}
// 如果没找到,返回-1
return -1;
}
在这个函数中,我们使用了一个循环来遍历数组中的每一个元素。每次循环,我们检查指针所指的元素是否和x相等。如果相等,则返回该元素的位置。如果不相等,则将指针向后移动一个元素的位置,继续检查下一个元素。如果循环结束后,没有找到和x相等的元素,则返回-1。
在main函数中,我们调用了这个函数,并输出它的返回值。如果返回值大于等于0,说明找到了和x相等的元素,输出该元素的位置。否则,输出“no”。