C 如何扫描一个数字并检查它是否';是否已在具有递归的数组中?

C 如何扫描一个数字并检查它是否';是否已在具有递归的数组中?,c,recursion,C,Recursion,我需要用不同的数字填充一个数组,换句话说,我如何扫描一个数字并用递归检查它是否已经在数组中 void getss(int array[], int i,int n) { int j; int num=array[i]; if (i > n-1) return; if(!scanf("%d", &array[i])){ printf("Illegal input!"); exit(1); }

我需要用不同的数字填充一个数组,换句话说,我如何扫描一个数字并用递归检查它是否已经在数组中

void getss(int array[], int i,int n)
{   int j;
    int num=array[i];
    if (i > n-1)
        return;
    if(!scanf("%d", &array[i])){
        printf("Illegal input!");
        exit(1);
    }
    /*if(checkdif(array,size+1,n,num)==0)
    {
        printf("Incorrect Input!");
        size++;
    }*/
    j=i+1;
    if(array[i]==array[j]){
            printf("Illegal input!");
    i++;
}

旁白:您有
if(!scanf(“%d”)和&array[i])
。。。但在这种情况下,您应该检查返回值是否为
1
。没有其他值是好的,例如
EOF
,它也不是
0
。在
int
数组上使用scanf()有什么意义?另外,在数组中搜索一个数字通常是迭代完成的。这是如何移动到下一个迭代的。我是否需要另一个函数来检查我插入的数字是否已经存在于数组中?通过传递下一次调用的
i
,如我所示。
void foo(int n) {
   for (int i=0; i<n; ++i) {
      ...
   }
}
void foo(unsigned i, int n) {
   if (i >= n)
      return;

   ...
   foo(i+1, n);
}