从int *到int错误的转换无效

时间:2013-09-27 22:22:01

标签: c

我在此代码中收到错误 - 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);
    }
}

1 个答案:

答案 0 :(得分:4)

您将步行声明为void walk(int,int,int,int,int,int,int),但在定义中您使用的是int[]个参数。