二维数组??

来源:百度知道 编辑:UC知道 时间:2024/05/08 17:40:31
#include<iostream.h>
void main()
{
int a[2][4];
int i, j;
for( j = 0; j < 2; j++)
cin >> a[0][j] ;
for( i = 0; i < 2; i++)
{ for ( j = 2; j < 4; j++)
{
a[i][j] = a[i][j-1] + a[i][j-2];
};
};
for( i = 0; i < 2; i++ )
for( j = 0; j < 4; j++)
cout << a[i][j] << endl;
int c;
cin >>c ;
};

1。我先给的二维数组第一行的前两个赋值,想实现从第三个元素开始,每个元是前两个的元素之和,而我的代码只能仅仅给出第一行的四个元素赋值,第二行不能实现!
2。请问我现在的代码第二行元素出现的是它们所的内存中的位置是吗?它们是根据什么分配的,为什么有不同的出现,它们之间隔了多少字节,为什么这么隔?请高手指教!!谢谢!!
怎么解决!

我帮你解答第二个问题,
不是内存位置。是随机分配的数字。
它们相隔一个int的大小.
就是2个字节

你第二行和第一行分开了
你把第一行最后两个数字带入计算
或者把二维数组变成一维的就好了

用递归函数可以轻松实现你的要求.

f(int n)
{
if (n==1)
return 1;
if (n==2)
return 1;
if n>2
return f(n-2)+f(n-1)
}