Как вывести двумерный массив в прямоугольный вывод? - PullRequest
0 голосов
/ 06 декабря 2011

Это не домашняя работа.Я начинающий (начинающий) Java-программист, пытающийся прочитать и выполнить упражнения в конце первой Java-книги Ивор Хортон.

Написать программу для создания прямоугольного массива, содержащего таблицу умножения от 1 X 1 до12 X 12. Выведите таблицу в виде 13 столбцов с числовыми значениями, выровненными по правому краю в столбцах.(Первая строка вывода будет заголовками столбцов, первый столбец без заголовка, затем номера 1-12 для оставшихся столбцов. Первым элементом в каждой из последующих строк является заголовок строки, который находится в диапазоне 1-12.

ПРИМЕЧАНИЕ: я узнал только о массивах и строках, циклах и логике, типах данных, переменных и вычислениях. Я не узнал о классах, их методах и т. Д. ...... так что ничего особенногопожалуйста. СПАСИБО!

public class Chapter4Exercise2 {

    public static void main(String[] args)
    {

     int[][] table = new int[12][12];


     for(int i=0; i <= table.length-1; i++)
     {
        for (int j=0; j <= table[0].length-1; j++)  
        {
        table[i][j] = (i + 1) * (j + 1);
        if (table[i][j] < 10) 
         System.out.print("  " + table[i][j] + " ");        
        else
        if (table[i][j] > 10 && table[i][j] < 100)          
         System.out.print(" " + table[i][j] + " "); 
        else
         System.out.print(table[i][j] + " ");       
        }
        System.out.println(" ");
     }

    }
}

Ответы [ 4 ]

2 голосов
/ 06 декабря 2011

Пока числа меньше 1000, попробуйте это:

Как сказал @ Mr1158pm:

public class Chapter4Exercise2 {
  public static void main(String[] args) {

  int tableSize = 10;

  int[][] table = new int[tableSize][tableSize];

  for(int i=0; i < table.length; i++) {
    for (int j=0; j < table[i].length; j++) {
      table[i][j] = (i+1)*(j+1);

      if(table[i][j] < 10) //Where i*j < 10
        System.out.print("   "+(table[i][j])+" ");  
      else if(table[i][j] < 100) //Where i*j < 100
        System.out.print("  "+(table[i][j])+" ");
      else //Where i*j < 1000
        System.out.print(" "+(table[i][j])+" ");
    }
  System.out.println("");
}
0 голосов
/ 11 апреля 2018
int width = 10;
int height = 10;

int[][] table = new int[width][height];

for(int i = 0; i < width; i++) {
    for(int j = 0; j < height; j++) {
            System.out.print(" " + table[i][j] + " ");
    }
    System.out.println("");
}
0 голосов
/ 25 августа 2013
import java.util.Scanner;
public class Back {
public static void main(String[] args) {
    Scanner a1  =new Scanner(System.in);
    int row,col;
    String ch;
    System.out.println("Enter width of screen:");
    row = a1.nextInt();
    System.out.println("Enter height of screen:");
    col = a1.nextInt();
    System.out.println("Enter background character:");
    ch  =a1.next();
    String twoD[][] = new String[row][col];
    int i,j;

    for(i=0;i<row;i++)
        for(j=0;j<col;j++){
            twoD[i][j] =  ch;

        }
    for(i=0;i<row;i++){
        for(j=0;j<col;j++)
    System.out.print(twoD[i][j]+" ");
    System.out.println();
    }
0 голосов
/ 06 декабря 2011

Я не думаю, что вам нужно объявлять структуру данных массива, чтобы распечатать эту таблицу. Просто используйте два вложенных для цикла и делайте вычисления в циклах. Вот метод работы, над которым вы можете работать. Просто нужно исправить выравнивание столбцов, добавить место тут и там. FYI row <10? "" + Row: row это форма встроенного оператора if. Если вы еще не видели его до Google. Это довольно полезно. </p>

public static void main(String[] args) {

    for(int row=0; row<13; row++)
    {
        for(int col=0; col<13; col++)
        {
            if(row==0) //ffirst row
            {
                if(col==0)
                    System.out.print("   ");
                else
                    System.out.print(col<10?"   "+col:"  "+col);
            }
            else
            {
                if(col==0)
                    System.out.print(row<10?"  "+row:row);
                else
                    System.out.print(row*col<10?"   "+(row*col):(row*col<100? "  "+(row*col):" "+(row*col)));
            }
        }
        System.out.println();
    }
}   
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...