KiKi有一个矩阵,他想知道转置后的矩阵(将矩阵的行列互换得到的新矩阵称为转置矩阵),请编程帮他解答。
KiKi有一个矩阵,他想知道转置后的矩阵(将矩阵的行列互换得到的新矩阵称为转置矩阵),请编程帮他解答。
第一行包含两个整数n和m,表示一个矩阵包含n行m列,用空格分隔。 (1≤n≤10,1≤m≤10)
从2到n+1行,每行输入m个整数(范围-231~231-1),用空格分隔,共输入n*m个数,表示第一个矩阵中的元素。
输出m行n列,为矩阵转置后的结果。每个数后面有一个空格。
2 3 1 2 3 4 5 6
1 4 2 5 3 6
#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; } }
#include<stdio.h> int main() { int n,m; scanf("%d %d",&n,&m); int i,j,array[n][m]; for(i=0;i<n;i++) { for(j=0;j<m;j++) { scanf("%d",&array[i][j]); } } for(i=0;i<m;i++) { for(j=0;j<n;j++) { printf("%d ",array[j][i]); } printf("\n"); } return 0; }
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int n = in.nextInt(), m = in.nextInt(); int[][] nums1 = new int[n][m]; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { nums1[i][j] = in.nextInt(); } } in.close(); for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { System.out.print(nums1[j][i] + " "); } System.out.println(); } } }
int main() { int n = 0; int m = 0; int i = 0; int j = 0; int arr[10][10]; printf("请输入行和列:"); scanf("%d%d", &n, &m); printf("请输入数据:"); for ( i = 0; i < n; i++) { for ( j = 0; j < m; j++) { scanf("%d",&arr[i][j]); } } printf("输入前:\n"); for (i = 0; i < n; i++) { for (j = 0; j < m; j++) { printf("%d ", arr[i][j]); } printf("\n"); } printf("输入后:\n"); for ( i = 0; i < m; i++) { for ( j = 0; j < n; j++) { printf("%d ", arr[j][i]); } printf("\n"); } return 0; }
#include <stdio.h> int main() { int a, b; scanf("%d %d",&a ,&b); int arr1[10][10]={0}; int arr2[10][10]={0}; for (int i=0; i<a; i++) { for (int j=0; j<b; j++) { scanf("%d ",&arr1[i][j]); arr2[j][i]=arr1[i][j]; } } for (int i=0; i<b; i++) { for (int j=0; j<a; j++) { printf("%d ",arr2[i][j]); } printf("\n"); } return 0; }