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 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; }
#include <stdio.h> int main() { int arr[10][10] = { 0 }; int rows = 0; int cols = 0; int i = 0; int j = 0; int tem = 0; //输入矩阵size scanf("%d %d", &rows, &cols); //输入矩阵元素 for (i = 0; i < rows; i++) { for (j = 0; j < cols; j++) { scanf("%d", &arr[i][j]); } } //输出矩阵 for (j = 0; j < cols; j++) { //列 for (i = 0; i < rows; i++) { //行 printf("%d ", arr[i][j]); } printf("\n"); } return 0; }
package main import ( "fmt" ) func main() { var n,m int fmt.Scan(&n,&m) sl1 := make([][]int, n) sl2 := make([][]int, m) for i:=0;i<n;i++{ sl1[i]=make([]int, m) } for i:=0;i<m;i++{ sl2[i]=make([]int, n) } for i:=0;i<n;i++{ for j:=0;j<m;j++{ fmt.Scan(&sl1[i][j]) } } for i:=0;i<m;i++{ for j:=0;j<n;j++{ sl2[i][j] = sl1[j][i] fmt.Printf("%d ", sl2[i][j]) } fmt.Println() } }
int main() { int n = 0; int m = 0; scanf("%d %d", &n, &m); int arr[10][10] = { 0 }; int i = 0; int j = 0; //输入数组 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 <stdio.h> int main() { int n,m; int arr[1000][1000]; int arr1[1000]; int count = 0; scanf("%d %d",&n,&m); for(int i = 0;i<n*m;i++) { scanf("%d",&arr1[i]); } //转置 for(int i = 0;i<n;i++) { for(int j = 0;j<m;j++) { arr[j][i] = arr1[count]; count++; } } //打印 for(int i = 0;i<m;i++) { for(int j = 0;j<n;j++) { printf("%d ",arr[i][j]); } printf("\n"); } return 0; }
#include <stdio.h> int main() { int m,n; scanf("%d %d",&n,&m); int arr[n][m],ar[m][n]; int i; for(i=0;i<n;i++) { int j; for(j=0;j<m;j++) { scanf("%d ",arr[i]+j); ar[j][i] = arr[i][j]; } } for(i=0;i<m;i++) { int j; for(j=0;j<n;j++) { printf("%d ",ar[i][j]); } printf("\n"); } return 0; }