2017-02-19 34 views
1

我對我的代碼有懷疑,每次我編寫時我編譯運行數字不排隊,總是下山,但我使用命令\n,應該能夠把一個新的沿着上面的一條線,對嗎?爲什麼命令 n在跳轉線時不要按順序排列數字?

我寫的是這樣的:

#include <stdio.h> 

int main(void) { 
    printf("1 \n 2 \n 3 \n 4 \n 5 \n 6 \n 7 \n 8 \n 9 \n 10 \n"); 
    return 0; 
} 
+0

如果你問爲什麼數量並不在同一列排列,這是因爲您在每個'\ N'後的空間,這將是一個字符都縮進。 – Jameson

+0

預期產量是多少?你看到了什麼輸出? – rootkea

+0

謝謝,我認爲這是自動的,我沒有意識到空間會是原因。 –

回答

1

你之前和換行符\n後添加一個空格。這會導致第二行和後續行縮進一個空格。

使用此,而是如果你希望所有的數字左對齊:

#include <stdio.h> 

int main(void) { 
    printf("1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n"); 
    return 0; 
} 

,這如果你想讓他們右對齊:

#include <stdio.h> 

int main(void) { 
    printf(" 1\n 2\n 3\n 4\n 5\n 6\n 7\n 8\n 9\n10\n"); 
    return 0; 
} 

請注意,您可以打破字符串成小塊,使意圖更明顯:

#include <stdio.h> 

int main(void) { 
    printf(" 1\n" 
      " 2\n" 
      " 3\n" 
      " 4\n" 
      " 5\n" 
      " 6\n" 
      " 7\n" 
      " 8\n" 
      " 9\n" 
      "10\n"); 
    return 0; 
} 

您還可以使用的格式化功能這樣做在一個循環:

#include <stdio.h> 

int main(void) { 
    for (int i = 1; i <= 10; i++) { 
     /* left pad the number with spaces for a minimum width of 2 characters */ 
     printf("%2d\n", i); 
    } 
    return 0; 
} 
相關問題