作者POSIX (tedium of chores)
看板C_and_CPP
標題Re: [問題]請教版上大大幫我看看我的問題
時間Sat Mar 28 21:42:14 2009
※ 引述《IwanTuRasS (阿姨)》之銘言:
: 各位版大晚安,小弟不才,初學C語言不久
: 下列這個程式是關於輸入年跟月來PRINT出月曆的程式
: 有些地方 (我用/**/包起來的地方 ) 看不太懂各位大大希望可以解釋看看
: 感激不盡(這個程式是可以編譯執行的 不是要大大幫我除BUG)
: #include <stdio.h>
: int main(int argc, char *argv[])
: /*這邊後面宣告的是什麼意思 一定要這樣打嗎*/
參考command-line arguments
書上沒有的話 網路上應該也查的到資料
: {
: int i, j, l, y, m, d, w;
: int b[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
: printf("請輸入年/月:");
: scanf("%d/%d", &j,&k);
: y = j;
: l = (y%4==0) && (y%100!=0) || (y%400==0);
: /*這邊&&是什麼意思*/
這個叫做logical operation
書上一定會有
: y =y+y/4-y/100+y/400;
: for (m=k; m<k+1; m=m+1)
: {
: printf("\n%d年%4d月\n 日 一 二 三 四 五 六\n", j, m);
: /*以下開始的回圈我就不是很懂了*/
下面你不懂的地方有兩個
1. for loop
2. if else
請參考control flow章節
這書上也一定會有
裡面比較要注意的是
i) 大括號{} 的使用,與不使用的時機
ii) 還有nested structure
: for (w=y, i=0; i<m; i++)
: w=w+ b[i];
: if (l && m<3) w=w-1;
: w %= 7;
: if (w) printf("%*s", w*3, " ");
: /*這邊超級不懂 */
: for (i=1; i<=b[m]; i++)
: { printf("%3d", i);
: if (++w == 7)
: { printf("\n");
: w = 0;
: }
: }
: if (w) printf("\n");
: }
: return 0;
: }
: 感謝各位了
加油!!
--
Potable Operating System Interface
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.117.176.163
推 VictorTom:&&和||應該是logic oper不是bitwise oper吧@_@" 03/28 22:02
3q 我突然傻了 XD
※ 編輯: POSIX 來自: 140.117.176.163 (03/28 22:09)
推 VictorTom: XD 03/28 22:35
推 IwanTuRasS:感謝 上面兩位大大 03/28 23:59