实在是弄不明白啊!!!!!

equalsai 2009-06-04 07:21:56
在编写矩阵乘法的过程中,为了初始化一个矩阵写了如下代码,
int a[2][1],b[1][2],c[2][2];
int i,j;
int t = 0;
for(i = 0;i<=2;i++)
for(j = 0;j<=1;j++)
{
t = t+1;
a[i][j] = t;
}

for(i = 0;i<=2;i++)
{
for(j = 0;j<=1;j++)
{
cout<<a[i][j];
}
cout<<endl;
}

结果输出来的不是需要的
1 2
3 4
5 6
而是这样一个结果
1 3
3 1
0 2

这是为什么啊?是程序的逻辑有问题,还是编译器有问题啊?
希望高手能给与解答!!!!
...全文
55 点赞 收藏 6
写回复
6 条回复
cxh_dream 2009年06月05日
[Quote=引用 1 楼 mengde007 的回复:]
a[2][1]总共是几行几列你总该清楚吧;

C/C++ code
#include<iostream>


using namespace std;

int main()
{
int a[3][2];
int i,j;
int t = 0;
for(i = 0;i <3;i++)
for(j = 0;j <=1;j++)
{

t = t+1;
a[i][j] = t;
}

for(i = 0;i <3;i++)
{
for(j = 0;j <=1;j++)
{
cout <<a[i][j];

[/Quote]
回复 点赞
猫已经找不回了 2009年06月04日

void main()
{
int a[3][2],b[1][2],c[2][2]; //a数组越界了,申请大一点
int i,j;
int t = 0;
for(i = 0;i <=2;i++)
for(j = 0;j <=1;j++)
{
t = t+1;
a[i][j] = t;
}

for(i = 0;i <=2;i++)
{
for(j = 0;j <=1;j++)
{
cout <<a[i][j]<<" ";
}
cout <<endl;
}
}
回复 点赞
pathuang68 2009年06月04日
[Quote=引用 1 楼 mengde007 的回复:]
a[2][1]总共是几行几列你总该清楚吧;

C/C++ code
#include<iostream>


using namespace std;

int main()
{
int a[3][2];
int i,j;
int t = 0;
for(i = 0;i <3;i++)
for(j = 0;j <=1;j++)
{

t = t+1;
a[i][j] = t;
}

for(i = 0;i <3;i++)
{
for(j = 0;j <=1;j++)
{
cout <<a[i][j];

[/Quote]
回复 点赞
jack_wq 2009年06月04日
mark
回复 点赞
amossavez 2009年06月04日
楼主的数组越界了!!!
回复 点赞
mengde007 2009年06月04日
a[2][1]总共是几行几列你总该清楚吧;

#include<iostream>


using namespace std;

int main()
{
int a[3][2];
int i,j;
int t = 0;
for(i = 0;i <3;i++)
for(j = 0;j <=1;j++)
{

t = t+1;
a[i][j] = t;
}

for(i = 0;i <3;i++)
{
for(j = 0;j <=1;j++)
{
cout <<a[i][j];
}
cout <<endl;
}

return 0;
}
回复 点赞
发动态
发帖子
C++ 语言
创建于2007-09-28

3.1w+

社区成员

24.8w+

社区内容

C++ 语言相关问题讨论,技术干货分享
社区公告
暂无公告