题目1193:矩阵转置

题目描述:

输入一个N*N的矩阵,将其转置后输出。要求:不得使用任何数组(就地逆置)。

输入:

输入的第一行包括一个整数N,(1<=N<=100),代表矩阵的维数。

接下来的N行每行有N个整数,分别代表矩阵的元素。

输出:

可能有多组测试数据,对于每组数据,将输入的矩阵转置后输出。

样例输入:
3
1 2 3
4 5 6
7 8 9
样例输出:
1 4 7
2 5 8
3 6 9
来源:

2007年华中科技大学计算机研究生机试真题

 #include <stdio.h>

    int main(){
        int n;
        while(scanf("%d", &n)!=EOF){
            int a[100][100], i, j;
            for(j = 0;j < n;j ++)
                for(i = 0;i < n;i ++)
                    scanf("%d",&a[i][j]);
            for(i = 0;i < n;i ++)
                for(j = 0;j < n;j ++)
                    if(j < n-1)printf("%d ",a[i][j]);
                    else printf("%d\n",a[i][j]);
        }
        return 0;
    }
/**************************************************************
    Problem: 1193
    User: Carvin
    Language: C++
    Result: Accepted
    Time:10 ms
    Memory:1020 kb
****************************************************************/

时间: 2024-10-07 14:51:13

题目1193:矩阵转置的相关文章

1193 矩阵转置

/* 输入一个N*N的矩阵,将其转置后输出 */ # include <stdio.h> int main(void) { int dim,matrix[100][100] = {0},temp = 0; while(scanf("%d", &dim) != EOF) { getchar(); //吸收回车符. if(dim <= 0) break; int i,j; for(i = 0; i < dim; i++) { for(j = 0; j <

(算法)求矩阵转置

题目: 编写一个函数,输入为一个矩阵,打印这个矩阵转置后的结果. 例: 输入矩阵是 1,2,3,4 5,6,7,8 9,10,11,12 13,14,15,16 打印结果应该是 13,9,5,1 14,10,6,2 15,11,7,3 16,12,8,4 思路: 1.从外到内,一圈一圈地循环替换: 2.对矩阵进行从[i,j]到[j,i]的交换,然后在进行列的首尾交换: 代码: #include<iostream> #include<vector> using namespace s

C语言之基本算法42—矩阵转置及按行按列排序

//矩阵转置 按行按列排序 /* ================================================================== 题目:输入m*n矩阵,按行升序排列输出. 输入: 4 3 5 6 2 9 8 1 2 8 7 1 2 3 8 输出: 2 3 4 5 6 1 2 8 8 9 1 2 3 7 8 ================================================================== */ #includ

POJ 3268 Silver Cow Party(dijkstra+矩阵转置)

Silver Cow Party Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 15460   Accepted: 7004 Description One cow from each of N farms (1 ≤ N ≤ 1000) conveniently numbered 1..N is going to attend the big cow party to be held at farm #X (1 ≤ X 

c++刷题(15/100)矩阵转置,最深子树

题目一:矩阵转置 给定一个矩阵 A, 返回 A 的转置矩阵. 矩阵的转置是指将矩阵的主对角线翻转,交换矩阵的行索引与列索引. 示例 1: 输入:[[1,2,3],[4,5,6],[7,8,9]] 输出:[[1,4,7],[2,5,8],[3,6,9]] 示例 2: 输入:[[1,2,3],[4,5,6]] 输出:[[1,4],[2,5],[3,6]] 思路:比较简单,但要注意对矩阵的初始化,如果不初始化会报错-->reference binding to null pointer of type

矩阵转置(不使用数组)

题目描述 输入一个N*N的矩阵,将其转置后输出.要求:不得使用任何数组(就地逆置). 输入描述: 输入的第一行包括一个整数N,(1<=N<=100),代表矩阵的维数. 接下来的N行每行有N个整数,分别代表矩阵的元素. 输出描述: 可能有多组测试数据,对于每组数据,将输入的矩阵转置后输出. 示例1 输入 3 1 2 3 4 5 6 7 8 9 输出 1 4 7 2 5 8 3 6 9 解决问题思路: 解决矩阵转置一般借助数组保存原矩阵或转置后的矩阵,通过将aij与aji互换或将aij输入到另一个

矩阵转置

#include<stdio.h>main(){ int a[2][3],b[3][2]; int i,j; //input a for(i=0;i<2;i++) { for(j=0;j<3;j++) { scanf("%d",&a[i][j]); } } // zhuanzhi b for(j=0;j<3;j++) { for(i=0;i<2;i++) { b[j][i]=a[i][j]; } } //ouput bfor(j=0;j<

10:矩阵转置

10:矩阵转置 查看 提交 统计 提问 总时间限制:  1000ms 内存限制:  65536kB 描述 输入一个n行m列的矩阵A,输出它的转置AT. 输入 第一行包含两个整数n和m,表示矩阵A的行数和列数.1 <= n <= 100,1 <= m <= 100.接下来n行,每行m个整数,表示矩阵A的元素.相邻两个整数之间用单个空格隔开,每个元素均在1~1000之间. 输出 m行,每行n个整数,为矩阵A的转置.相邻两个整数之间用单个空格隔开. 样例输入 3 3 1 2 3 4 5

java 矩阵转置算法

工作中用到了行列转置,把这两种情况的算法记下来,以便后用 1.行列数相等的转置 1 /** 2 * @description 矩阵转置 3 * @author oldmonk 4 * @time 2017年8月18日 5 */ 6 public class test { 7 8 public static void main(String [] args) { 9 int data [][] = new int [] [] { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8,