任意定义一个二维数组,实现矩阵的转置——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("input the rowNumber and columnNumber");

    int rowNumber = input.nextInt();

    int columnNumber = input.nextInt();

    //create the matrix

    int matrix[][] = createMatrix(rowNumber,columnNumber);//deliver the rowNumber and columnNumber

    outputMatrix(matrix);

    System.out.println("the Transform result is :");

    int transitionResult[][] = transformMatrix(matrix);

    //input matrix

    outputMatrix(transitionResult);

}

    //create matrix

  public static int[][] createMatrix(int x,int y)

  {

    Scanner input = new Scanner(System.in);

    //input the datas;

    System.out.println("please the datas");

    int array[][] = new int[x][y];

    for(int i = 0;i < array.length;i ++)

    {

      for(int j = 0;j < array[i].length;j++)

      {

        array[i][j] = input.nextInt();

      }

    }

    return array;  

  }

  //tranform matrix

  public static int[][] transformMatrix(int matrix[][])

  {

    int a[][] = new int[matrix[0].length][matrix.length];

    for(int i = 0;i < matrix[0].length;i++)

    {

      for(int j = 0;j < matrix.length;j++)

      {

        a[i][j] = matrix[j][i];

      }

    }

    return a;

  }

  //output matrix

  public static void outputMatrix(int matrix[][])

  {

    for(int i = 0;i < matrix.length;i++)

    {

      for(int j = 0;j < matrix[i].length;j++)

      {

        System.out.print(matrix[i][j]+" ");

      }

      System.out.println();

    }

  }

}

时间: 2025-01-04 21:13:40

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

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,

java怎么定义一个二维数组?

java中使用 [][] 来定义二维数组 定义数组时也可同时初始化 下面是一些例子float[][] numthree; //定义一个float类型的2维数组numthree=new float[5][5]; //为它分配5行5列的空间大小numthree[0][0]=1.1f; //通过下标索引去访问 1行1列=1.1long[][] numfive=new long[5][]; //定义一个long类型的不规则数组numfive[0]=new long[5]; //为第1行分配5列//定义d

定义一个二维数组反置函数

#include<stdio.h> //定义一个3*3数组反转函数 void fan(int a[3][3]){ int i,j; int t[3][3]; for(i=0;i<3;i++) for(j=0;j<3;j++) t[i][j]=a[j][i]; for(i=0;i<3;i++){ for(j=0;j<3;j++) printf("%d ",t[i][j]); printf("\n"); } return 0; } /

返回一个二维数组最大矩阵的和

设计思想: 首先肯定是把二维转化为一维数组来比较,这样,先从第一行开始,把第一行看成是一维数组选出最大子数组具体实现是,设子数组和为sum=0,另设b=0,a[0][i]从a[0][0]开始检索当b<0时b=a[0][i]否则b=b+a[0][i]只有当b>sum时sum=b,(首先保证sum的初次赋值是大于0然后就是对b的操作首次出现正数时赋给b此时sum=0,b>sum,所以sum=b,然后继续上一步对b的正负性的判断分解为,开始由上一步b>0所以b=b+a[0][i],若a[

new一个二维数组(转)

转自:http://www.cnblogs.com/irvinow/archive/2009/02/21/1395340.html 定义二维数组char array[x][y]; 1.只定义个一维的就可以了 char *array; array = new char[x*y]; 访问的时候*(array+i*y+j)表示array[i][j] 2.定义一个二维数组 char **array1 array1 = new char *[x]; for(i=0;i<x;++i) array1[i] =

返回一个二维数组中最大联通子数组的和

1 #include <iostream> 2 #include <time.h> 3 #include<string> 4 #include<fstream> 5 #define M 3 6 #define N 4 7 using namespace std; 8 9 int main() 10 { 11 int length[100],num[M][N] = {0},visit[M][N]={0},i=0;//length[100],是把文件中的数组转化

java 数据结构 图中使用的一些常用算法 图的存储结构 邻接矩阵:图的邻接矩阵存储方式是用两个数组来标示图。一个一位数组存储图顶点的信息,一个二维数组(称为邻接矩阵)存储图中边或者弧的信息。 设图G有n个顶点,则邻接矩阵是一个n*n的方阵,定义为: 实例如下,左图是一个无向图。右图是邻接矩阵表示:

以下内容主要来自大话数据结构之中,部分内容参考互联网中其他前辈的博客. 图的定义 图是由顶点的有穷非空集合和顶点之间边的集合组成,通过表示为G(V,E),其中,G标示一个图,V是图G中顶点的集合,E是图G中边的集合. 无边图:若顶点Vi到Vj之间的边没有方向,则称这条边为无项边(Edge),用序偶对(Vi,Vj)标示. 对于下图无向图G1来说,G1=(V1, {E1}),其中顶点集合V1={A,B,C,D}:边集合E1={(A,B),(B,C),(C,D),(D,A),(A,C)}: 有向图:若

C语言数组:C语言数组定义、二维数组、动态数组、字符串数组

1.C语言数组的概念 在<更加优美的C语言输出>一节中我们举了一个例子,是输出一个 4×4 的整数矩阵,代码如下: #include <stdio.h> #include <stdlib.h> int main() { int a1=20, a2=345, a3=700, a4=22; int b1=56720, b2=9999, b3=20098, b4=2; int c1=233, c2=205, c3=1, c4=6666; int d1=34, d2=0, d3

c语言:将一个二维数组行和列的元素互换,存到另一个二维数组中。

将一个二维数组行和列的元素互换,存到另一个二维数组中. 解:程序: #include<stdio.h> int main() { int i, j, a[2][3] = { {1,2,3},{4,5,6} },b[3][2]; printf("array a:\n"); for (i = 0; i <=1; i++)//处理a数组中的一行中各元素 { for (j = 0; j <= 2; j++)//处理a数组中的某一列元素 { printf("%5