作者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