James B
James B

Reputation: 231

Multiplication table with 2d array

I need to make a multiplication table that shows 1 * 1 up to 12 * 12. I have this working but it needs to be in 13 columns in a format that looks like the diagram below, really appreciate any help.

    1    2    3    4    5    6    7    8    9    10    11    12

1   1    2    3    4    5    ...

2   2    4    6    8    10   ....

3

4

5

6

...

Code so far:

public class timetable {

    public static void main(String[] args) {

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

            for (int row=0; row<12; row++){
              for (int col=0; col<12; col++){
                table[row][col] = (row+1) * (col+1);
              }
            }

            for (int row = 0; row < table.length; row++) {
                for (int col = 0; col < table[row].length; col++) {
                   System.out.printf("%6d", table[row][col]);
                }
                System.out.println();
             }

    }

}

Upvotes: 0

Views: 6010

Answers (4)

Elline_Angelica
Elline_Angelica

Reputation: 1

You could implement a timesTable() method. Here's my code, modify it anyway you would like.

//main driver
public static void main(String[] args) {

    int[][] data; //declaration

    data = timesTable(4,6); //initialisation

    for (int row = 0; row < data.length ; row++)
    {
        for (int column = 0; column < data[row].length; column++)
        {
            System.out.printf("%2d ",data[row][column]);
        }
        System.out.println();

    }
}

//method
public static int[][] timesTable(int r, int c)
{
    int [][] arr = new int[r][c];
    for (int row = 0; row < arr.length ; row++)
    {
        for (int column = 0; column < arr[row].length; column++)
        {
            arr[row][column] = (row+1)*(column+1);
        }

    }
    return arr;
}

Upvotes: 0

Jamal
Jamal

Reputation: 1

    int [][] A = new int[5][5];
    int [][] B = new int[5][5];

    for (int row = 0; row < A.length; row++) {
        System.out.println();
        for (int col = 0; col < A.length; col++) {

            B[row][col] = (row+1)*(col+1);
            System.out.print("\t");
            System.out.printf("%2d", B[row][col]);

        }

    }

Upvotes: 0

CoolPanda
CoolPanda

Reputation: 1

This only prints 9x9 timetable, if you need to change it 12x12, then just change the numbers in the code from "9" to "12", and add more "----" lines in the system output to match it

This includes " * |" and "----" ... Thought this might be helpful for anyone else

Output: 9x9 Timetable

public class timetable2DArray
{
    public static void main(String[] args) 
    {
        int[][] table = new int[9][9];

        for (int row=0; row<9; row++)
        {
          for (int col=0; col<9; col++)
      {
        table[row][col] = (row+1) * (col+1);
      }
    }

    // Print column headings
    System.out.print("   * |");
    for (int col = 0; col < table[0].length; col++) 
    {
        System.out.printf("%4d", col+1);
    }
    System.out.println("");
    System.out.println("------------------------------------------");

    for (int row = 0; row < table.length; row++) 
    {
        // Print row headings
        System.out.printf("%4d |", row+1);

        for (int col = 0; col < table[row].length; col++) 
        {
           System.out.printf("%4d", table[row][col]);
        }
        System.out.println();
     }

}

}

Upvotes: 0

uoyilmaz
uoyilmaz

Reputation: 3105

Print column headings before printing the table, and print row headings at the start of each row. You can use the code below.

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

for (int row=0; row<12; row++){
  for (int col=0; col<12; col++){
    table[row][col] = (row+1) * (col+1);
  }
}

// Print column headings
System.out.printf("%6s", "");
for (int col = 0; col < table[0].length; col++) {
    System.out.printf("%6d", col+1);
}
System.out.println();

for (int row = 0; row < table.length; row++) {
    // Print row headings
    System.out.printf("%6d", row+1);

    for (int col = 0; col < table[row].length; col++) {
       System.out.printf("%6d", table[row][col]);
    }
    System.out.println();
 }

Upvotes: 1

Related Questions