2013-03-04 4 views
0

for 루프를 사용하여 NxN 행렬을 만들려고합니다. 나는 거의 그것을 가지고 있다고 생각하지만 나는 루프에서 뭔가를 놓치고있는 것처럼 느낀다. 사용자는 저에게 n을주고 그 입력을 기반으로 행렬을 생성한다고 가정합니다.for 루프를 사용하는 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

"매트릭스"를 인쇄하려면 두 번째 루프 내에서만 print 문이 필요합니다. 즉,

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(); 
    } 
} 

사실, 여기서 실제로 매트릭스 생성되지 않는다 (어떠한 구조에 저장되지 않은 의미를 2 차원 배열을 말한다) 만 임의의 값 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 내부의 행 요소를 인쇄하기 전에 줄 바꿈으로 추가 난수를 인쇄한다는 것입니다. 이미 다른 행을 인쇄 할 필요가 없기 때문에 이미 해당 행의 모든 ​​요소를 ​​초 단위로 인쇄하고 있다는 것을 기억하십시오.

시작시 빈 줄로 끝내지 않으려면 전체 행을 인쇄 한 후에 새 줄 자국을 인쇄하십시오.

관련 문제