using namespace std;
int main(int argc, char *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", &j);
y = j;
l = (y%4==0) && (y%100!=0) || (y%400==0);
y += y/4 - y/100 + y/400;
for (m=1; m<13; m++)
{ printf("\n%d年%4d月\n 日 一 二 三 四 五 六\n", j, m);
for (w=y, i=0; i<m; i++)
w += b[i];
if (l && m<3) w--;
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");
}
system("PAUSE");
return 0;
}
-
2009-01-20 13:08:58 補充
全部改成c++語法~~
printf 等於 cout
那其他的是??
answer:
/*解釋一些...其他邏輯思考...就沒得解釋...因為都一樣,只要你思考清晰就ok*/
#include "stdafx.h" //這是我用visual c++所以要引入之標頭檔
#include <iostream>
using namespace std;
int main(int argc, char *argv[])
{
int i, j, l, y, m, d, w; //宣告七個變數
int b[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
/*宣告陣列{0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}
共13個 陣列索引是從0開始*/
//printf("請輸入年: ");
cout<<"請輸入年: "; //這裡不多說
//scanf("%d", &j);
cin>>j;
y = j; //指定給y
l = (y%4==0) && (y%100!=0) || (y%400==0); //計算結果在經過true/false指定給l
y += y/4 - y/100 + y/400; //計算
for (m=1; m<13; m++) //迴圈m初值設為1
{
//printf("\n%d年%4d月\n 日 一 二 三 四 五 六\n", j, m);
cout<<j<<"年"<<m<<"月\n"<<"日 一 二 三 四 五 六\n";//不多說
for (w=y, i=0; i<m; i++) //迴圈y指定給w,i設為0
{
w += b[i]; //i=0,b[0]...在指定給w...累加...i=1,b[1]
}
if (l && m<3) //l and m<3...如true...才執行w--
{
w--;
}
w %= 7; //上面false...
if (w)
{
printf("%*s", w*3, " "); //不多說
}
for (i=1; i<=b[m]; i++) //這裡跟上面迴圈一樣
{
printf("%3d", i);
if (++w == 7)
{
printf("\n"); //這裡也一樣cout,下面跟上面都一樣
w = 0;
}
}
if (w)
{
printf("\n");
}
}
return 0;
}
留言列表