c语言已知存放在a数组中的数都不相同,在a数组中查找和x值相同的元素的位置。若找到,输出该值和该值在a数组中的位置;若没找到,输出相应的信息。利用指针实现。

已知存放在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”。