2013-03-04 2 views
0

Я пытаюсь создать матрицу NxN, используя встроенные для циклов. Я думаю, что у меня почти есть это, но я чувствую, что что-то пропускаю в петлях. Пользователь должен дать мне n, и я создаю матрицу на основе этого ввода.NxN матрица с использованием встроенных для петель

public static void printMatrix(int n){ 



    for (int i = 1; i < n; i++){ 
     System.out.println(" "+(int)(Math.random() + 0.5)); 

     for(int k = 1; k < n+1; k++) 
      System.out.print(" "+(int)(Math.random() + 0.5)); 

    } 
} 
+4

Вы пытались запустить это? Что вам не хватает? – iamnotmaynard

+2

Да, вам не хватает многого. Я не вижу здесь матрицы, всего две петли. – duffymo

ответ

2

Для печати «матрицы» требуется только оператор печати во втором цикле. т.е.

public static void printMatrix(int n) 
{ 
    for(int i = 1; i <= n; i++) 
    { 
     for(int k = 1; k <= n; k++) 
      System.out.print("\t"+(int)(Math.random() + 0.5)); 
     System.out.println(); 
    } 
} 

На самом деле, здесь вы на самом деле не создает матрицу (это означает, что вы не хранить его в любой структуре, скажем, 2D-массив), но только распечатав n*n число случайных величин.

Чтобы сделать это, а также,

public static void printMatrix(int n) 
{ 
    int[][] yourArray = new int[n][n]; 
    for(int i = 1; i <= n; i++) 
     for(int k = 1; k <= n; k++) 
      yourArray[i][k] = Math.random() + 0.5; //Populating the array. 
    for(int i = 1; i <= n; i++) 
    { 
     for(int k = 1; k <= n; k++) 
      System.out.print("\t"+yourArray[i][k]); //Reading data from the array. 
     System.out.println(); 
    } 
} 
+0

Где находится матрица? – user93353

0

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

for (int i = 1; i < n; i++) 

Сколько итераций будет?

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

Также попробуйте напечатать новую метку линии после печати всей строки, если вы не хотите заканчивать пустую строку при запуске.

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