编辑代码

#include <stdio.h>

/*函数:从n个元素的数组v中,查找出所有与key的值相等的元素,
并将其【下标】存储到数组idx中,返回idx的元素个数。*/

void search_idx(const int v[], int idx[], int key, int n)
{
    int i;
    int j = 0;
    int k;

    for (i = 0; i < n; i++)
    {
        if (v[i] == key)
        {
            idx[j] = i;
            j += 1; 
        }
         
    }

    printf("idx[]={");
    for (k = 0; k < j; k++)
    {
        printf("%d, ", idx[k]);
    }
    printf("}");
}

int main(void)
{
    int num;
   
    int i;
    int ky;

    do
    {
        printf("设置数组大小:");   scanf("%d", &num);
    } while (num < 1 && num > 10);

     int x[num], y[num];

    printf("录入数组:\n");
    for(i = 0; i < num; i++)
    {
        printf("x[%d]:", i);   scanf("%d", &x[i]);
    }
    
    putchar('\n');
    printf("输入要查找的值:");     scanf("%d", &ky);

    search_idx(x, y, ky, num);

    return 0;
}