2015-05-09 181 views
0

我有一個像這樣的代碼,但我想以4 * 10這樣的二維數組顯示它。我正在考慮將一維數組的元素複製到二維。但我如何編輯下面的代碼。謝謝。將一維數組複製到二維數組中C

long int arr[40]; 

printf("The Fibonacci range is: "); 

arr[0]=0; 
arr[1]=1; 

for(i=2;i<range;i++){ 
    arr[i] = arr[i-1] + arr[i-2]; 
} 

    for(i=0;i<range;i++) 
    printf("%ld ",arr[i]); 
+0

你都完成了一維的。使用相同的過程,你可以將它添加到數組[x] [y],並循環。唯一的事情是你需要跟蹤兩個索引而不是一個索引。你試過編碼嗎? – fingaz

回答

0

退房這個

#include <stdio.h> 

int main(void) { 

long int arr[40]; 
long int twoD[4][10]; 
int i,range,j,k; 
printf("The Fibonacci range is:\n "); 
scanf("%d",&range); // getting range value from user 

arr[0]=0; 
arr[1]=1; 

for(i=2;i<range;i++){ 
    arr[i] = arr[i-1] + arr[i-2]; 
} 

i=0; // reinitialize i to 0. 
    for(j=0;j<4;j++){ 
     for(k=0;k<10;k++){ 
      twoD[j][k]=arr[i++]; // coping 1D to 2D array 
     } 
    } 

    for(j=0;j<4;j++){ 
     for(k=0;k<10;k++){ 
     printf("%ld ",twoD[j][k]); // printing 2D array 
     } 
     printf("\n"); 
    } 

    return 0; 
} 
0

如果它僅用於顯示的原因你沒有到陣列複製剛修好它在打印:

for(i=0;i<range;i++) { 
    if (i%10 == 0) 
     printf("\n"); 
    printf("%ld ",arr[i]); 
} 

那將打印在4條DIFF線陣列,因爲我想你想。

希望這是幫助

+0

我試過了,但是它在第一行以第一行和第二行從1開始出來。但是這也是一個好方法。謝謝。 =) – m1031

+0

只需更換printf的位置(在打印下方)。我會學徒,如果你會投票解決方案:-) – ItayB

1

你已經完成了所有的一維。使用相同的過程,你可以將其添加到array [x] [y],並循環。唯一的事情是你需要跟蹤兩個索引而不是一個索引。編碼一切,你會得到它。

+0

我明白了!謝謝洛特。〜 – m1031