Quantcast
Viewing all articles
Browse latest Browse all 40121

SIGSEGV PCYCLE...can you tell me whats wrong with this code..thanks..

hi, here's the code

    #include<stdio.h>

int main(void)
{
    int n,p,j=1,count=0,i,arr1[1010],arr2[2010];
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        scanf("%d",&arr1[i]);
    }
    for(i=1;i<=n;i++)
    {
        if(arr1[i]!=0)
        {
            count++;
            p=i;
            arr2[j++]=i;
            do
            {
                arr2[j++]=arr1[arr2[j-1]];
                arr1[arr2[j-2]]=0;
            }while(p!=arr2[j-1]);
        }
    }
    printf("%d\n",count);
    for(i=1;i<j;i++)
    {
        printf("%d",arr2[i++]);
        p=arr2[i-1];

        do
        {
            printf(" %d",arr2[i++]);
        }while(p!=arr2[i-1]);
        printf("\n");
        i--;
    }
    return 0;
}

Viewing all articles
Browse latest Browse all 40121