c++ 二维数组输入问题

GGJJLLDD 2012-04-28 10:38:55
第一段代码:
#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
错误,不明白为什么
...全文
1034 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
snow_pubby 2012-05-01
  • 打赏
  • 举报
回复
数组不允许自己输入长度,只能在定义的时候定长,你看看定义a[l][l],L还不知道
青霜无痕 2012-05-01
  • 打赏
  • 举报
回复
数组不允许自己输入长度,只能在定义的时候定长,你看看定义a[l][l],L还不知道
  • 打赏
  • 举报
回复
第二段代码:cin>>l;这句话我这编译都通不过,我用的是vs2008;
GGJJLLDD 2012-04-28
  • 打赏
  • 举报
回复
这是我新写得代码,可以正常运行
#include <iostream>
using namespace std;
//int l=2;
int main()
{
int l,i,j;
cout<<"l"<<endl;
cin>>l;
int **a=new int*[l];
for(i=0;i<l;i++)
a[i]=new int[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;
}
GGJJLLDD 2012-04-28
  • 打赏
  • 举报
回复
哈哈,谢谢大家,我觉得3楼,四楼说的很好,至于5楼,是因为我贴代码是写错拉,要加个l
muyi66 2012-04-28
  • 打赏
  • 举报
回复
第二段代码里你把//#define l 2给注释掉了,按理说int a[l][l],i,j;中的l无定义,已经是无法通过编译了。

你怎么通过编译的?
liuhao 2012-04-28
  • 打赏
  • 举报
回复
int a[l][l],i,j;
cout<<"l"<<endl;
cin>>l;

顺序有问题啊
L还没赋值呢。就定义数组。定义的是什么呢?
hen_hao_ji 2012-04-28
  • 打赏
  • 举报
回复

#include <iostream>
using namespace std;
//#define l 2
int 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;
}


evencoming 2012-04-28
  • 打赏
  • 举报
回复
int a[l][l],i,j;
cout<<"l"<<endl;
cin>>l;
//如果是c99,改为
==>
int l,i,j;
cout<<"l"<<endl;
cin>>l;
a[l][l];


GGJJLLDD 2012-04-28
  • 打赏
  • 举报
回复
其中第二段代码定义写错拉,应该是这样int l,a[l][l],i,j;
ljhhh0123 2012-04-28
  • 打赏
  • 举报
回复
C++为何为用C风格,看看《C++程序设计语言》吧。

64,646

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧