数据结构实验之数组一:矩阵转置
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
数组——矩阵的转置
给定一个m*n的矩阵(m,n<=100),求该矩阵的转置矩阵并输出。
输入
输入包含多组测试数据,每组测试数据格式如下:
第一行包含两个数m,n
以下m行,每行n个数,分别代表矩阵内的元素。
(保证矩阵内的数字在int范围之内)
输出
对于每组输出,输出给定矩阵的转置矩阵。两组输出之间用空行隔开。
示例输入
2 3
1 2 3
4 5 6
1 1
1
示例输出
1 4
2 5
3 6
1
Time Limit: 1000ms Memory limit: 65536K 有疑问?点这里^_^
题目描述
数组——矩阵的转置
给定一个m*n的矩阵(m,n<=100),求该矩阵的转置矩阵并输出。
输入
输入包含多组测试数据,每组测试数据格式如下:
第一行包含两个数m,n
以下m行,每行n个数,分别代表矩阵内的元素。
(保证矩阵内的数字在int范围之内)
输出
对于每组输出,输出给定矩阵的转置矩阵。两组输出之间用空行隔开。
示例输入
2 3
1 2 3
4 5 6
1 1
1
示例输出
1 4
2 5
3 6
1
<pre name="code" class="cpp">//# include <stdio.h>
# include <bits/stdc++.h>
using namespace std;
//error: declaration of 'r_matrix' as multidimensional array must have bounds for all dimensions except the first|
void reverse_matrix(int matrix[][100],int r_matrix[][100],int m,int n);
void print_matrix(int matrix[][100],int row,int col);
int main()
{
int i,j;
int matrix[100][100];
int r_matrix[100][100];
int m,n;
//while(scanf("%d%d",&m,&n))
while(cin>>m>>n)
{
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
//scanf("%d",&matrix[i][j]);
cin>>matrix[i][j];
}
}
reverse_matrix(matrix,r_matrix,m,n);
print_matrix(r_matrix,n,m);
printf("\n");
}
return 0;
}
void reverse_matrix(int matrix[][100],int r_matrix[][100],int m,int n)
{
int i,j;
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
r_matrix[i][j] = matrix[j][i];
}
}
}
void print_matrix(int matrix[][100],int row,int col)
{
int i,j;
for(i=0;i<row;i++)
{
for(j=0;j<col;j++)
{
if(j!=col-1)
{
printf("%d ",matrix[i][j]);
}
else
{
printf("%d\n",matrix[i][j]);
}
}
}
}