我在此代码中收到错误 - invalid conversion from int* to int
我该如何更正?
#include <stdio.h>
#include <conio.h>
void walk(int,int,int,int,int,int,int);
int main()
{
int n,i;
scanf("%d",&n);
int a[10],b[10],c[30];
for(i=1;i<=n;i++)
{
scanf("%d",&a[i]); b[i]=0;
}
int j=1;
walk(1,j,0,b,c,n,a);
for(i=1;i<=j;i++)
{
if(c[i]==0)
printf("%d");
else printf("%d",c[i]);
}
getch();
}
void walk(int i,int j,int s,int b[],int c[],int n,int a[])
{
c[j]=a[i];
j++;
if(b[a[i]]!=1)
{
b[a[i]]=1;
walk(a[i],j,s,b,c,n,a);
} else {
c[j]=0;
s++;
i=1;
while(b[i]==1&&i<=n)
i++;
if(i<=n)
walk(i,j,s,b,c,n,a);
else printf("%d",s);
}
}
答案 0 :(得分:4)
您将步行声明为void walk(int,int,int,int,int,int,int)
,但在定义中您使用的是int[]
个参数。