2015-04-20 34 views
1

我的問題已修復,謝謝你們!在我的java代碼中這個打印功能有什麼問題?


因此,我正在一個學校項目,我認爲應該寫在C,但事實證明,我必須在java中做到這一點,現在我設法讓它工作,但我得到的結果isn我想要的是什麼。如果有人可以看看,並告訴我爲什麼結果是錯誤的,將不勝感激!

我的Java代碼:

public static void printMatrix(int p[][], int n){ 
       int i, j; 
       for (i=0;i<n;i++){ 
        for (j=0;j<3;j++){ 
         if (p[i][j]==0) System.out.println(".\t"); 
         else System.out.println(p[i][j]+"\t"); 
        } 
       } 

       System.out.println("-------------------"); 
      } 

我工作的C代碼:

void printMatrix(int **p, int n){ 
    int i, j; 
    printf("\n\n"); 
    for (i=0 ; i<n ; i++){ 
      for (j=0 ; j<3 ; j++){ 
       if (p[i][j] == 0) printf(".\t"); 
       else printf("%d\t", p[i][j]); 
      } 
      printf("\n"); 
     } 
    printf("-------------------"); 
} 

結果我得到:

1 
1 
. 

2 
2 
. 

3 
3 
. 
------------------- 

結果我在找:

1  .  . 
2  .  . 
3  .  . 
------------------- 
+1

你會得到什麼結果? –

+0

感謝您的快速回答,我只是添加了我得到的結果! :) – dx3d

+1

您正在收到的問題可能在println。這種方法打印輸出和一個新行 – thoitbk

回答

2

print()println()是不同的方法:println()增加換行符。

public static void printMatrix(int p[][], int n){ 
    for (int i = 0; i < n; i++){ 
     for (int j = 0; j < 3; j++){ 
      if (p[i][j] == 0) 
       System.out.print(".\t"); 
      else 
       System.out.print(p[i][j]+"\t"); 
     } 
     System.out.println(); 
    } 
    System.out.println("-------------------"); 
} 
+0

而不是發送一個調用println();我會打電話打印(「\ n」)。它們是一樣的,但是println();打印一個空字符串然後打印一個新行字符,而print(「\ n」)只打印一個換行符。 –

+0

比你的答案,我不能upvote,因爲我還沒有+15代表,所以我想至少謝謝你,至少! :) – dx3d

+0

@CraigParkinson不完全正確。 'println()'只是將一個行分隔符放入一個流中,不會在其中放置額外的空字符串。看看源代碼。 –

2

System.out.println(str)str後面打印換行符。改爲使用System.out.print(str)