【名词解释】
在一行中输入两个整数
![]()
,分别表示矩阵的行数和列数。
接下来
行,每行输入
个整数
![]()
,用空格分隔。
输出
行
列,为矩阵的转置结果。每个元素之后使用一个空格。
2 3 1 2 3 4 5 6
1 4 2 5 3 6
原矩阵为:
其转置矩阵为:
1 4 7 8 9 10
7 8 9 10
原矩阵为 :
其转置矩阵为:
#include <stdio.h> int main(){ int n, m, arr[10][10]; scanf("%d %d", &n, &m); int i, j = 0; for(i = 0; i < n * m; i++, j++) scanf("%d", &arr[i / m][j % m]); for(i = 0; i < n * m; i++, j++){ printf("%d ", arr[j % n][i / n]); if((j+1) % n == 0) printf("\n"); } return 0; }
#include<stdio.h> int main() { int n, m, arr[10][10]; scanf("%d %d", &n, &m); for (int i = 0; i < n; i++) for (int j = 0; j < m; j++) scanf("%d", &arr[i][j]); for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) printf("%d ", arr[j][i]); printf("\n"); } return 0; }
#include<stdio.h> int main() { int n,m,i,j; scanf("%d %d",&n,&m); int arr[n][m]; for(i=0;i<n;i++) for(j=0;j<m;j++) scanf("%d",&arr[i][j]); for(i=0;i<m;i++) { for(j=0;j<n;j++) printf("%d ",arr[j][i]);//注意输出顺序,没有设两个二维数组 //而是改变第一个二维数组的输出顺序 printf("\n"); } return 0; }
# include<bits/stdc++.h> using namespace std; int main() { int hang,lie; cin>>hang>>lie; int arr[hang][lie],arr_num; for(int i = 0;i<hang;i++){ for(int j = 0;j<lie;j++){ cin>>arr_num; arr[i][j] = arr_num; } } for(int i = 0;i<lie;i++){ for(int j = 0;j<hang;j++){ cin>>arr_num; cout<<arr[j][i]<<" "; } cout<<endl; } }
x, y = map(int, input().split()) # 获取矩阵输入 old = [[0] * y for _ in range(x)] # 构建输入矩阵 # 填充输入矩阵数据 for i in range(x): line = list(map(int, input().split())) for j in range(len(line)): old[i][j] = line[j] new = [['0'] * x for _ in range(y)] # 构建新矩阵 # 填充新矩阵数据 for i in range(y): for j in range(x): new[i][j] = str(old[j][i]) # 以字符串数字方式填充 for line in new: print(' '.join(line)) # 字符串数组可使用join方式拼接一行数据并打印
n,m = map(int,input().strip().split()) matrix = [list(map(int,input().strip().split())) for _ in range(n)] tran_matrix = [[0]*n for _ in range(m)] for i in range(n): for j in range(m): tran_matrix[j][i] = matrix[i][j] for row in tran_matrix: print(" ".join(map(str,row)))
#include<stdio.h> void My_scanf(int arr[10][10],int n, int m) { int i = 0; int j = 0; for(i=0;i<n;i++) { for(j=0;j<m;j++) { scanf("%d ",&arr[i][j]); } } } void Exchange_arr(int arr1[10][10],int arr2[10][10],int n, int m) { int i = 0; int j = 0; for(i=0;i<n;i++) { for(j=0;j<m;j++) { arr2[j][i]=arr1[i][j]; } } } void arr_printf(int arr[10][10],int n, int m) { int i = 0; int j = 0; for(i=0;i<m;i++) { for(j=0;j<n;j++) { printf("%d ",arr[i][j]); } printf("\n"); } } int main() { int n = 0; int m = 0; scanf("%d %d",&n,&m); int arr1[10][10]={0}; int arr2[10][10]={0}; My_scanf(arr1,n,m); Exchange_arr(arr1,arr2,n,m); arr_printf(arr2,n,m); return 0; }
#include <stdio.h> int main() { int n,m; int arr[n][m]={0}; scanf("%d %d",&n,&m); int i,j; for(i=0;i<n;j++) { for(j=0;j<m;j++) scanf("%d",&arr[i][j]); } for(i=0;i<m;i++) { for(j=0;j<nj++) printf("%d",arr[j][i]); } printf("\n"); return 0; }