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);
}