Таблица умножения массивов

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}

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

Теги:
arrays
multiplication

3 ответа

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 - целое число. Дополнительную информацию можно найти здесь: web.cerritos.edu/jwilson/SitePages/java_language_resources/…
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");

    }

Ещё вопросы

Сообщество Overcoder
Наверх
Меню