作者clubflymf (clubfly)
看板PLT
標題Re: [問題] 請求幫忙解釋C語言
時間Tue Jun 2 17:13:55 2009
※ 引述《IwanTuRasS (阿姨)》之銘言:
: 各位版大,小弟不才,初學C語言不久
: 下列這個程式是關於輸入年跟月來PRINT出月曆的程式
: 有些地方 (我用/**/包起來的地方 ) 看不太懂各位大大希望可以解釋看看
: 感激不盡(這個程式是可以編譯執行的 不是要大大幫我除BUG)
: #include <stdio.h>
載入 stdio.h 標頭檔
: int main(int argc, char *argv[])
宣告主程式進入點 後面是告訴程式 有兩個變數
1個 名字叫 argc 型態為 int
1個 名字叫 argv 為一字元陣列
: /*這邊後面宣告的是什麼意思 一定要這樣打嗎*/
看程式的寫法
: {
: 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);
&& 是邏輯符號 and 的意思
: /*這邊&&是什麼意思*/
: 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);
: /*以下開始的回圈我就不是很懂了*/
: 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)
每7個換一次行
就是
1 2 3 4 5 6 7
8 9 .........
15 .........
: { printf("\n");
: w = 0;
: }
: }
: if (w) printf("\n");
: }
: return 0;
: }
: 感謝各位了
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.32.116.173