zoukankan      html  css  js  c++  java
  • 数组和矩阵的问题转圈打印数组

    package demo2;

    import java.util.Scanner;

    public class Main {

    private static Scanner input = new Scanner(System.in);
    public static void main(String[] args) {
    //1:首先初始化一个矩阵
    //2:打印这个矩阵中的值

    printMatrix(init(4,4));

    }

    public static int [][] init(int row,int col){
    int [][] matrix = new int[row][col];
    for (int i = 0;i<row;i++) {
    for (int j = 0;j<col;j++) {
    matrix [i][j] = input.nextInt();
    }
    }
    return matrix;
    }

    public static void printMatrix(int [][] matrix){
    int tr = 0;
    int tc = 0;
    int dr = matrix.length - 1;
    int dc = matrix[0].length - 1;
    while (tr <= dr && tc <= dc) {
    printEdge(matrix,tr++,tc++,dr--,dc--);
    }

    }

    private static void printEdge(int[][] matrix, int tr, int tc, int dr, int dc) {
    //1:首先判断这个矩阵是不是只有一行的情况
    if (tr == dr) {
    for (int i = tc;i <= dc;i++) {
    System.out.print(matrix[tr][i] + " ");
    }
    }
    //2:判断这个矩阵是不是只有一列的情况
    else if (tc == dc) {
    for (int i = tr;i <= dr;i++) {
    System.out.print(matrix[i][tc] + " ");
    }
    }else{//一般的情况
    int curc = tc;
    int curr = tr;
    while (curc != dc) {
    System.out.print(matrix[tr][curc]);
    curc++;
    }

    while (curr != dr) {
    System.out.print(matrix[curr][dc]);
    curr++;
    }

    while (curc != tr) {
    System.out.print(matrix[dr][curc]);
    curc--;
    }

    while (curr != tr) {
    System.out.print(matrix[curr][tc]);
    curr--;
    }

    }







    }

    }

  • 相关阅读:
    MVC学习
    Net开源网络爬虫
    js调用wcf 的SOA
    Redis 上实现的分布式锁
    dojo/request
    Python,PyCharm
    如何解决卸载McAfee时出现“处于托管模式时无法删除”问题(转)
    糗事⊙︿⊙
    Oracle exp,imp
    java 生产者消费者问题 并发问题的解决(转)
  • 原文地址:https://www.cnblogs.com/airycode/p/5762442.html
Copyright © 2011-2022 走看看