一个C++运行问题

来源:百度知道 编辑:UC知道 时间:2024/05/25 12:34:02
#include<iostream.h>
void main()
{
int a[4][4]={0},p;
cout<<"输入一个3×4的矩阵:"<<endl;
for(int i=0;i<3;i++){
for(int j=0;j<4;j++)
cin>>a[i][j];
}

for(i=1;i<3;i++){
for(int j=i+1;j<4;j++)
p=a[i][j];
a[i][j]=a[j][i];
a[j][i]=p;
}

for(i=0;i<4;i++){
for(int j=0;j<3;j++)
cout<<a[i][j]<<' ';
cout<<endl;
}
}
这段代码是将一个3×4的矩阵扩展成4×4的矩阵,然后对4×4矩阵转置,最后输出前面3列,效果就是对3×4矩阵转置,可是运行出错,能编译,也能运行,可是结果不是想得那样,谢谢高手帮帮忙!!

for(i=1;i<3;i++){
for(int j=i+1;j<4;j++)
p=a[i][j];
//for(int j=i+1;j<4;j++)p=a[i][j] 相当于 int j=3; p=a[i][j];
//明显的逻辑错误
a[i][j]=a[j][i];
a[j][i]=p;
}
应该是
for(i=1;i<3;i++)
for(int j=i+1;j<4;j++){
p=a[i][j];
a[i][j]=a[j][i];
a[j][i]=p;
}
还有,你用的是VC6.0吧,
这个程序在标准的C++中编译不通过。