[問題] 日曆起始位置如何使用空白來對齊

看板C_and_CPP作者 (洋蔥)時間12年前 (2013/02/28 14:27), 編輯推噓0(005)
留言5則, 4人參與, 最新討論串1/1
這是一題編寫月曆的題目,輸出結果會讓第一天不是在星期天的排在星期天的位置 有什麼辦法能夠讓程式輸出 3*(w-1)個空格 #include <stdio.h> int main() { int i, w, n; printf("Enter number of days in month:"); scanf("%d", &n); printf("Enter starting day of the week (1=sun, 7=sat)"); scanf("%d", &w); for(i = 1; i <= n; i++){ if(w == 7) { w = 1; printf("%3d", i); printf("\n"); } else { printf("%3d", i); w++; } } return 0; } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.114.202.57

02/28 14:31, , 1F
int c=3*(w-1); while(c--) printf("空格");
02/28 14:31, 1F

02/28 14:52, , 2F
▲簡單有效
02/28 14:52, 2F

02/28 15:19, , 3F
可以請大大解釋一下原理嗎,我完全搞不清楚為什麼可以這樣
02/28 15:19, 3F
後面的 printf 語句,為什麼可以隨著C,輸出數目不一樣的空格 ※ 編輯: p089206 來自: 140.114.202.57 (02/28 15:24)

02/28 15:24, , 4F
因為前面有while
02/28 15:24, 4F
原來如此,忘記while是迴圈,謝謝各位大大 ※ 編輯: p089206 來自: 140.114.202.57 (02/28 15:45)

02/28 16:27, , 5F
你改成 for(int k=...;k>0;--k) printf...; 也是一樣的
02/28 16:27, 5F
文章代碼(AID): #1HBlZDHr (C_and_CPP)