数组-简单矩阵的转置

转置运算就是沿着矩阵对角线进行反转

 1 #include<stdio.h>
 2
 3 #define N 3
 4 int main(void)
 5 {
 6     int array[N][N]={
 7         {1,2,3},
 8         {4,5,6},
 9         {7,8,9}
10     };
11
12     int i,j;
13     for(i=0;i<N;++i)
14     {
15         for(j=0;j<N;++j)
16         {
17             printf("%3d",array[i][j]);
18         }
19         printf("\n");
20     }
21
22     int temp;
23     for(i=0;i<N;++i)
24     {
25         for(j=i+1;j<N;++j)
26         {
27             temp=array[i][j];
28             array[i][j]=array[j][i];
29             array[j][i]=temp;
30         }
31     }
32
33     for(i=0;i<N;++i)
34     {
35         for(j=0;j<N;++j)
36         {
37             printf("%3d",array[i][j]);
38         }
39         printf("\n");
40     }
41     return 0;
42 }

需要注意的就是在进行判断的时候要始终令列号大于行号,(也可以选择别的规则),此时再进行转换就可以很好的实现了。

时间: 2024-10-12 13:56:25

数组-简单矩阵的转置的相关文章

C代码和python代码:用二维数组实现矩阵的转置

目录 一.总结 二.C代码 三.Python代码 一.总结 输入用了 int(input()) ,但发现这种方法好像有点不方便 每次输入一个数字都要按回车,按空格不能识别 下次找找看看有没有其他输入方法 Python中没有数组,但列表类似数组 通过叠加[ ],就可以通过列表创建二维数组 Python中创建二维数组的方法(以本案例为例): matrixA=[[0 for i in range(4)] for i in range(3)] matrixA=[ [ 0, 0, 0, 0], [ 0,

C数组实现矩阵的转置

直接上代码,在代码中有对矩阵的学习,包括初始化学习以及如何使用等. #include <stdio.h> /** * 给出提示,要求输入数组A * ,通过二维数组,进行数组的转置 * 得出数组B,输出结果 * * 该实例主要是为了进行学习二维数组 * @brief main * @return */ int main(void) { /** * 二维数组的初始化: * 1:分行给二维数组赋值 * static int a[3][4] = {{1,2,3,4},{5,6,7,8},{9,10,1

c++数组-矩阵的转置

//矩阵的转置 //将一个二维数组行和列元素互换,存到另一个二维数组中. // 例如 // a=1 2 3 // 4 5 6 // b=1 4 // 2 5 // 3 6 // 程序如下: #include <iostream> using namespace std; int main( ) { int a[2][3]={{1,2,3},{4,5,6}}; int b[3][2],i,j; cout<<"array a:"<<endl; for (

任意定义一个二维数组,实现矩阵的转置——java

import java.util.Scanner; /* * 任意定义一个二维数组,编写程序实现矩阵的转置. * */ public class MatrixTransposition { public static void main(String[] args) { //create the rowNumber and columnNumber of the matrix Scanner input = new Scanner(System.in); System.out.println("

SDUT 3347 数据结构实验之数组三:快速转置

数据结构实验之数组三:快速转置 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 转置运算是一种最简单的矩阵运算,对于一个m*n的矩阵M( 1 = < m < = 10000,1 = < n < = 10000 ),它的转置矩阵T是一个n*m的矩阵,且T( i , j )=M( j , i ).显然,一个稀疏矩阵的转置仍然是稀疏矩阵.你的任务是对给定一个m*n的稀疏矩阵( m

数据结构 - 数组、矩阵、广义表存储

数组的定义 数组的定义 数组是下标index 和值value 组成的序对的集合. 在数组中,每个有定义的下标都与一个值对应,这个值称做数组元素. 每个序对形如: (index,value) 数组的顺序表示和实现 由于计算机的内存结构是一维的,因此用一维内存来表示多维数组,就必须按某种次序将数组元素排成一列序列,然后将这个线性序列存放在存储器中. 一般都是采用顺序存储的方法来表示数组 一维数组的顺序表示 设第一个数组元素a[0]的存储地址是loc(a[0]),若已知每个数组元素占k个存储单元,则下

c++矩阵的转置和快速转置

矩阵的转置 将原矩阵的行.列对换,也就是将[i][j]和[j][i]位置上的数据对换. 程序代码: #include<vector>   //稀疏矩阵push pop operator[] 和顺序表一致   template<class T> struct Triple  //定义一个三元组 可以直接访问的定义成struct { size_t _row; size_t _col; T _value;   Triple(size_t row, size_t col, const T&

对矩阵进行转置运算

package lianxi; public class juzhen { public static void main(String[] args) { // TODO 自动生成的方法存根 int arr[][]=new int[][]{{1,2,3},{4,5,6},{7,8,9}}; //创建二维数组 System.out.println("转置前的的矩阵是:"); printArray(arr); //输出二维数组 int arr2[][]=new int[arr.lengt

【数据结构】稀疏结构及稀疏矩阵的压缩存储,矩阵的转置

在矩阵中,有一类很重要的矩阵,就是-----稀疏矩阵. 所谓的稀疏矩阵呢,就是指的是,在矩阵中,有效的数据个数远远小于无效的数据个数(并且这些数据排列顺序没有规律).我们下面先举个稀疏矩阵的例子: 有效数据个数仅仅6个,其余都为无效数据0. 那我们将稀疏矩阵存在压缩矩阵中,设定一个三元组,使用{row,col,value}存储每一个有效数据,三元组按原矩阵中的位置,以行优先级先后顺序依次存放. 我们建立一个结构体: struct Triple//定义一个三元组,用来存储稀疏矩阵的x,y,坐标值