矩阵转置(20分) 题目内容:用户输入矩阵阶数,然后按行输入所有矩阵元素(整数),将该矩阵转置输出。阶数应是[1,5]之间的整数,不在该区间时,显示“matrix order error”。 输入格式:第1行,一个整数,表示阶数n。以后是n行数据,每行n个整数,是按行输入的矩阵元素。 输出格式:n行转置的数据,数据间以一个空格分隔,行末没有空格。 输入输出样例1输入:44 6 8 92 7 4 53 8 16 151 5 7 11输出:4 2 3 16 7 8 58 4 16 79 5 15 11 输入输出样例2输入:0输出:matrix order error
注意:转置应该是存储矩阵的数组中的元素实现了转置运算,而不仅是显示效果。
时间限制:2000ms内存限制:32000kb C++ #include
using namespace std;
int main()
{
const int N=100,M=100;
int a[N][M];
int i,j,n,temp;
cin>>n;
if(n>=1&&n<=5)
{
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
cin>>a[i][j];
}
}
for(i=0;i<n;i++)
{
for(j=0;j<i;j++)
{
temp=a[i][j];
a[i][j]=a[j][i];
a[j][i]=temp;
}
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
cout<<a[i][j];
if(j!=(n-1))
cout<<" ";
}
cout<<endl;
}
}
else
cout<<"matrix order error";
return 0;
}