2014-08-31 3 views
1

Я хочу узнать больше о массивах. Я придумал этот вопрос создания таблицы умножения, который будет отображать этот путьТаблица умножения массива

1 2 3 4 5 

2 4 6 8 10 

3 6 9 12 15 

4 8 12 16 20 

5 10 15 20 25 

Я хотя использование массивов таким образом

int myArray[] = {1,2,3,4,5}; 
int myArray2[] = {1,2,3,4,5} 

Первый массив будет служить в качестве горизонтального набора и второй будет вертикальной. Проблема в том, что я не знаю, как именно я буду умножать каждый индекс и отображать их как таблицу умножения.

ответ

1

Вы можете использовать что-то вроде этого предполагается, что вы используете Java:

for (int j = 1; j <= 5; j++) 
{ 
    for (int i = 0; i < myArray.length; i++) 
     { 
      System.out.print(array[i] * j + " "); 
      if (i == myArray.length - 1) 
       { 
        System.out.println(); 
       } 
     } 
    j++; 
} 

Внешний контур будет ходить числа от 1 до 5.

Внутренний цикл будет использовать внешний цикл в «J» значение для умножения каждого числа в вашем массиве.

Затем он помещает пустую строку, когда внутренний цикл достигает конца массива.

+1

Спасибо, это действительно дало мне хорошую идею. –

+0

@RyanArellano Я рад, что это помогает. Если это то, что вам нужно, можете ли вы принять его как ответ? Спасибо! :) –

2

Почти такой же, как выше, но с отформатированным выходом.

public static void main(String[] args) { 
    int[] h = {1, 2, 3, 4, 5}; 
    int[] v = {1, 2, 3, 4, 5}; 
    for (int i = 0; i < h.length; i++) { 
     for (int j = 0; j < v.length; j++) { 
      System.out.printf("%5d", h[i] * v[j]); 
     } 
     System.out.println(); 
    } 
} 

«% 5d» дает вам некоторое пространство, чтобы числа не мешали друг другу. (Здесь я предполагаю, что, кстати, язык Java, но вы можете легко преобразовать его на другие языки, как вы пожелаете. Идея такая же. =))

+0

Спасибо, сэр, что System.out.printf («% 5d» был для меня знаком и все еще не умеет его использовать. Что означает «% 5d»? –

+0

% - форматтер, 5 - номер пробелов, а d обозначает целое число. Более подробную информацию можно найти здесь: http://web.cerritos.edu/jwilson/SitePages/java_language_resources/Java_printf_method_quick_reference.pdf –

1

Ниже приведены некоторые примеры, чтобы получить больше знаний о массивах и двухмерных массивах

//X HEADING PLUS MATH 
    for (int i =0; i < 13; i ++){ 
     System.out.print(i + "\t"); 
    } 
    System.out.print("\n"); 

    //MATH PORTION PLUS HEADING 
    for (int y =1; y < 13; y++){ 
     System.out.print(y + "\t"); 
     for (int x=1; x<13; x++){ 
      System.out.print((x*y) + "\t"); 
     } 
     System.out.print("\n"); 
    } 


    System.out.print("\n"); 

    //MATH PORTION 
    // 

    for (int y =1; y < 13; y++){ 
     for (int x=1; x<11; x++){ 
      System.out.print((x*y) + "\t"); 
     } 
     System.out.print("\n"); 
    } 





    System.out.print("\n");*/ 

    //************************************// 
    //EXAMPLE USING TWO DIMENSIONAL ARRAY // 
    //W/OUT HEADERS***********************// 
    //************************************// 
    //JFrame frame = new JFrame ("HW09"); 
    //int length = Integer.parseInt(JOptionPane.showInputDialog(frame, "Enter the multiplication table length")) + 1; 
    int length = 13; 
    int[][] multi = new int[length][length];//created 2 dim array 

    //formatting heading 
    for (int i = 0; i<length; i++) { 
    multi[0][i] = i; 
    multi[i][0] = i; 
    } 
    //fills array with values 
    for (int yPos = 1; yPos<length; yPos++){//loops through all y positions 
     for (int xPos =1; xPos < length; xPos++){//loops through x positions of y position 
      multi[xPos][yPos] =(xPos)*(yPos); 
     } 
    } 
    //prints out values 
    for (int yPos = 0; yPos<length; yPos++){//loops through all y positions 
     for (int xPos =0; xPos < length; xPos++){//loops through horizontal positions of y position 
      System.out.print(multi[xPos][yPos] + "\t"); 
     } 
     System.out.print("\n"); 
    } 

    System.out.print("\n"); 


    //************************************/ 
    // EXAMPLE USING TWO ARRAYS  // 
    //************************************// 

    int[] y = new int[] {1,5,6,9};//array for x 
    int[] x = new int[] {2,5,7,8,10};//array for y 
    //prints out horizontal header 
    System.out.print("x\t"); 
    for (int i =0; i < x.length; i ++){ 
     System.out.print(x[i] + "\t"); 
    } 
    System.out.print("\n"); 
    //prints out y header and then does math 
    for (int i =0; i < y.length; i ++){ 
     System.out.print(y[i] + "\t"); 
     //loop to do math for what above me 
     for (int i2 =0; i2 < x.length; i2++){ 
      System.out.print((y[i] * x[i2]) + "\t"); 
     } 
     System.out.print("\n"); 

    } 
Смежные вопросы