2015-05-09 180 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