求下面问题完整的c语言代码

【题目内容】
已知数组int numlist=[1,2,3,4,5,6,4,8,9];编写一个函数,利用指针在这个整形数组中查找所有给定值。
【输入形式】
一个给定值
【输出形式】
数组中所有等于给定值的位置
【测试用例1】
输入:
4
输出:
3,6

供参考:

#include <stdio.h>
void fun(int *a, int n,int x)
{
    int *p = a,i = 0;
    for (p; p < a + n; p++)
    {
        if (*p == x)
            printf(i++==0?"%d":",%d",p-a);
    }
    if (i == 0) printf("no found");
}
int main()
{
    int numlist[9]={1,2,3,4,5,6,4,8,9},n=9,x;
    scanf("%d", &x);
    fun(numlist,n,x);
    return 0;
}

img


#include <stdio.h>
#include <string.h>
int  main()
{
    int numlist[20]={1,2,3,4,5,6,4,8,9},i,x,a[20],j=0;
    int *p=numlist;
    scanf("%d",&x);
    for(i=0;i<9;i++){
        if(x==*(p+i))
            a[j++]=i;

    }
    for(i=0;i<j;i++){
        if(i!=j-1)
        printf("%d,",a[i]);
    else
         printf("%d",a[i]);
    }
}