Datawhale四月ACM算法
这是第一次参加组队学习希望能记录这一次的学习过程,同时希望能锻炼自己的coding能力,交到更多的志同道合的朋友
这次的练习题如下:
行列互换 转秩
输入一个n*m大小的矩阵,将其行列互换,第1行换成第1列,第2行换成第2列,依此类推。
1 <= n, m <= 100
输入描述:
第一行两个整数n,m
接下来n行,每行m个整数
输出描述:
m行,每行n个整数,表示互换之后的矩阵。
#include <bits/stdc++.h>
using namespace std;
//我的思路是运用两个数组,一个存即另一个转即b
int main() {
// 请补全代码,实现题目功能
int a[101][101] = {0};
int b[101][101] = {0};
int n,m;
cin>>n>>m;
for(int i = 0; i < n; i++){
for(int j = 0; j < m; j++){
cin>>a[i][j];
}
}
for(int i = 0; i < m; i++){
for(int j = 0; j < n;j++)
{
b[i][j] = a[j][i];
cout<<b[i][j]<<" ";
}
cout<<endl;
}
return 0;
}
而答案给出的思路如下
#include <iostream>
using namespace std;
int main() {
int n, m;
cin >> n >> m;
int nums[m][n];
for (int i=0; i<n; i++)
for (int j=0; j<m; j++)
//存储时就按转秩时存储
cin >> nums[j][i];
for (int i=0; i<m; i++) {
for (int j=0; j<n; j++)
//直接就输出
cout << nums[i][j] << " ";
cout << endl;
}
return 0;
}
//多开了一片内存