2012-10-01 29 views
-1

嗨我試圖加入到一個新的數組中的int數組與未定義的大小(取決於前兩個數組,但是當我運行代碼時,它停留在一個無限循環中,似乎,我在做什麼錯?詩篇的陣列應該結束的時候遇到一個-1 Ds的。想加入數組,但他們不這樣做

int 
main (void) { 
    void join(int arr1[], int arr2[]); 
    int vectorA[11] = {8, 17, 29, 32, 33, 33, 77, 81, 90, 94, -1}; 
    int vectorB[11] = {8, 17, 29, 44, 33, 33, 77, 81, 90, 94, -1}; 

    join(vectorA, vectorB); 
return 0; 
} 

void join(int arr1[], int arr2[]) 
{ 
    int count=0, counter=0; 
    int i=0, j=0; 
    while(arr1[i]>-1) 
     count++; 
    while(arr2[j]>-1) 
     count++; 
    int tot[count]; 
    for(i=0, j=0; ((arr1[i]>-1) || (arr2[j]>-1));) 
    { 
     if(arr2[j]<0) { 
     tot[counter++]=arr1[i++]; 
    } 
    else if(arr1[i]<0) { 
     tot[counter++]=arr2[j++]; 
    } 
    else { 
     tot[counter++]=arr2[j++]; 
     tot[counter++]=arr1[i++]; 
    } 
} 

printf("the doubled array is : \n"); 
for(int i=0; i<count; i++) 
{ 
    printf("%d, ", tot[i]); 
} 

} 
+0

http://sscce.org/ – 2012-10-01 04:55:11

回答

3
while(arr1[i]>-1) 
     count++; 

這將永遠不會結束,因爲i沒有改變。也許你的意思是arr[i++]

+0

現在我感到很蠢,謝謝... – patriques

相關問題