c++ 二维数组输入问题
第一段代码:
#include <iostream>
using namespace std;
#define l 2
int main()
{
int a[l][l],i,j;
//cout<<"l"<<endl;
//cin>>l;
for(i=0;i<l;i++)
{
for(j=0;j<l;j++)
{
cout<<"a["<<i<<"]"<<"["<<j<<"]"<<"=";
cin>>a[i][j];
}
}
for(i=0;i<l;i++)
for(j=0;j<l;j++)
{
cout<<"a["<<i<<"]"<<"["<<j<<"]"<<"=";
cout<<a[i][j]<<endl;
}
return 0;
}
执行结果:
a[0][0]=1
a[0][1]=2
a[1][0]=3
a[1][1]=4
a[0][0]=1
a[0][1]=2
a[1][0]=3
a[1][1]=4
正确!
第二段代码:
#include <iostream>
using namespace std;
//#define l 2
int main()
{
int a[l][l],i,j;
cout<<"l"<<endl;
cin>>l;
for(i=0;i<l;i++)
{
for(j=0;j<l;j++)
{
cout<<"a["<<i<<"]"<<"["<<j<<"]"<<"=";
cin>>a[i][j];
}
}
for(i=0;i<l;i++)
for(j=0;j<l;j++)
{
cout<<"a["<<i<<"]"<<"["<<j<<"]"<<"=";
cout<<a[i][j]<<endl;
}
return 0;
}
执行结果:
a[0][0]=1
a[0][1]=2
a[1][0]=3
a[1][1]=4
a[0][0]=3
a[0][1]=4
a[1][0]=3
a[1][1]=4
错误,不明白为什么
[解决办法]
- C/C++ code
#include <iostream>using namespace std;//#define l 2int main(){ int a[2][2],i,j,l;//楼主,数组大小一定要用常量,所以你可以先定义一个大一点的大小,//或者用 动态数组 cout<<"l"<<endl; cin>>l; for(i=0;i<l;i++) { for(j=0;j<l;j++) { cout<<"a["<<i<<"]"<<"["<<j<<"]"<<"="; cin>>a[i][j]; } } for(i=0;i<l;i++) for(j=0;j<l;j++) { cout<<"a["<<i<<"]"<<"["<<j<<"]"<<"="; cout<<a[i][j]<<endl; } return 0;}
[解决办法]
int a[l][l],i,j;
cout<<"l"<<endl;
cin>>l;
顺序有问题啊
L还没赋值呢。就定义数组。定义的是什么呢?