「java输出矩阵倒置」字符串的倒置java
今天给各位分享java输出矩阵倒置的知识,其中也会对字符串的倒置java进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
java 怎么实现不定长度的矩阵转置
import java.util.Scanner;
public class $ {
public static void main(String[] args) {
int[][] arr = initData();
System.out.println("输入的数据是----------------------");
show(arr);
arr = change(arr);
System.out.println("传值后数据是----------------------");
show(arr);
}
private static int[][] change(int[][] arr) {
int size = arr.length;
int[][] tmp = new int[size][size];
for (int i = 0; i arr.length; i++) {
for (int j = 0; j arr.length; j++) {
tmp[i][j] = arr[size - i - 1][size - j - 1];
}
}
return tmp;
}
private static void show(int[][] arr) {
for (int[] a : arr) {
for (int i : a) {
System.out.print(i + " ");
}
System.out.println();
}
}
private static int[][] initData() {
Scanner in = new Scanner(System.in);
System.out.println("输入数字的长度");
int size = in.nextInt();
int[][] arr = new int[size][size];
for (int i = 0; i arr.length; i++) {
for (int j = 0; j arr.length; j++) {
System.out.print("输入(" + i + "," + j + ")的值:");
arr[i][j] = in.nextInt();
}
}
return arr;
}
}
java的矩阵转置找问题
你的Java矩阵转置程序我帮你改好了,主要问题是应该把矩阵中以主对角线对称的数两两交换,而不是简单赋值,冲掉原来的数,而且for-j循环只要访问主对角线下方的数就可以了,不要访问全矩阵的数,那样会使矩阵主对角线下方的数交换两次,从而等于没有转置.
完整的Java矩阵转置程序如下(改动的地方见注释)
package cn.itcast.chapter01;
public class ZhuanZhi {
public static void main(String[] args) {
int a[][]={{1,2,3},{4,5,6},{7,8,9}};
for(int i=0;ia.length;i++)
{
for(int j=0;ji;j++)//这里把for(int j=0;ja[i].length;j++)改成for(int j=0;ji;j++)只访问主对角线下方的数
{
//这里交换主对角线下方的数和主对角线上方的数
int temp=a[i][j];
a[i][j]=a[j][i];
a[j][i]=temp;
}
}
//这里单独输出转置后的矩阵
for(int i=0;ia.length;i++)
{
for(int j=0;ja[i].length;j++)
{
System.out.print(a[i][j]+" ");
}
System.out.println();
}
}
}
运行结果
java矩阵转置
你的转置意思是 行列交换?
public static Object[][] turnA(Object[][] a){
Object[][] b=new Object[a[0].length][a.length];
for(int i=0;ia.length; i++)
for(int j=0;ja[0].length;j++)
b[j][i]=a[i][j];
return b;
}
这个方法转置的是对象矩阵,因此不能传入基本变量的数组,需要用类型包装器包装。
e.g:
Integer[][] i=new Integer[3][5];
//int[][] i=new int[4][3];
//Can't use here; Integer,Double,String,byte and so on..
Random r=new Random();
for(int j=0;ji.length;j++){
Arrays.fill(i[j], r.nextInt(100));
System.out.println(Arrays.toString(i[j]));
}
Object[][] o=turnA(i);
for(int j=0;jo.length;j++){
System.out.println(Arrays.toString(o[j]));
这是static void main里的一段验证程序,程序最前面需要
import java.util.*;
Java输出转置矩阵
我按照你的情况写了个,能运行。希望对你有帮助!
Scanner scan = new Scanner(System.in);
int [][] arry;
int m,n;
m = scan.nextInt();
n = scan.nextInt();
arry = new int [m][n];
for(int i=0;iarry.length;i++){
for(int j = 0;jarry[i].length;j++ ){
System.out.print("* ");
}
System.out.println();
}
scan.close();
如何用java编写一个矩阵的转置?
int a[][] = {{1,2,3,4},{1,2,3,4},{1,2,3,4},{1,2,3,4},{1,2,3,4},{1,2,3,4},{1,2,3,4}};
int b[][] = new int [4][7];
for (int i = 0; i 4; i++) {
for (int j = 0; j 7; j++) {
b[i][j] = a[j][i];
}
}
System.out.println("矩阵a:");
for (int i = 0; i 7; i++) {
for (int j = 0; j 4; j++) {
if (j 3) {
System.out.print(a[i][j] + " ");
} else {
System.out.println(a[i][j] + " ");
}
}
}
System.out.println("矩阵a转置:");
for (int i = 0; i 4; i++) {
for (int j = 0; j 7; j++) {
if (j 6) {
System.out.print(b[i][j] + " ");
} else {
System.out.println(b[i][j] + " ");
}
}
}
代码写得烂不要喷我,我想解决思路就是这样吧!
java使矩阵转置
转置就是行列对换,把数组中的数据从[i][j]变成[j][i]就可以了。
public class T{
public static int row = 10;
public static int col = 20;
public static void main(String argv[]) throws Exception {
int a[][] = new int[row][col];
int b[][] = new int[col][row];
//补充A的数据
for (int i=0;irow;i++)
for (int j=0;jcol;j++)
b[j][i] = a[i][j];
//显示B中的数据
}
}
关于java输出矩阵倒置和字符串的倒置java的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-11-23,除非注明,否则均为
原创文章,转载请注明出处。