當前位置:編程學習大全網 - 編程語言 - Vc打印編程

Vc打印編程

//代碼很復雜,涉及到不常見的算法。請仔細閱讀。

/*年份:2012

*****壹月*****

周日周壹周二周三周四Fri周六

1 2 3 4 5 6 7

8 9 10 11 12 13 14

15 16 17 18 19 20 21

22 23 24 25 26 27 28

29 30 31

請按任意鍵繼續...

*****二月*****

周日周壹周二周三周四Fri周六

1 2 3 4

5 6 7 8 9 10 11

12 13 14 15 16 17 18

19 20 21 22 23 24 25

26 27 28 29

請按任意鍵繼續...

*****三月*****

周日周壹周二周三周四Fri周六

1 2 3

4 5 6 7 8 9 10

11 12 13 14 15 16 17

18 19 20 21 22 23 24

25 26 27 28 29 30 31

請按任意鍵繼續...

*****四月*****

周日周壹周二周三周四Fri周六

1 2 3 4 5 6 7

8 9 10 11 12 13 14

15 16 17 18 19 20 21

22 23 24 25 26 27 28

29 30

請按任意鍵繼續...

*/

# include & ltstdio.h & gt

# include & ltstdlib.h & gt

int JudgeLeapYear(int);//判斷是否是閏年。

int MonthDay(int m,int y);//返回本月的天數。

void print header(void);//輸出標題

int FirstWeek(int m,int y);//返回本月1日是星期幾。

void print month(int m);//輸出月標題

int main(int argc,char* argv[]) {

int年,月,日,測試,周;

printf("年:");

scanf("%d ",& amp年份);

for(month = 1;月份& lt= 12;月++) {

test = 1;

printMonth(月);

print header();

week = FirstWeek(月,年);

如果(周& lt6){//輸出每個月的第壹周。

for(I = 0;我& lt=周;i++) {

putchar(' \ t ');

test++;

}

}

for(I = 1;我& lt= MonthDay(月,年);i++,test++) {

//每個月輸出不是第壹周。

printf("%d\t ",I);

if(test % 7 = = 0)put char(' \ n ');

}

putchar(' \ n ');

系統(“暫停”);//暫停以觀察輸出。

}

返回0;

}

//判斷是否運行年份。

int JudgeLeapYear(int y) {

return((y % 4 = = 0)& amp;& amp(y%100) || (y%400 == 0))?1 : 0;

}

//這個月1號是星期幾?

int FirstWeek(int month,int year) {

如果(月& lt3) {

月+= 12;

年份-;

}

return(1+2 *月+ 3*(月+ 1)/5 +年+年/4 -年/100 +年/400)% 7;

}

//壹月有幾天

int MonthDay(int月,int年){

int d;

開關(月){

案例1:

案例三:

案例5:

案例7:

案例8:

案例10:

案例12:d = 31;打破;

案例4:

案例6:

案例9:

案例11:d = 30;打破;

案例2:d = JudgeLeapYear(年)?29 : 28;打破;

}

返回d;

}

//打印日歷標題

void printHeader(void) {

printf(" % s \ t % s \ t % s \ t % s \ t % s \ t % s \ t % s \ t % s \ t \ n "," Sun "," Mon "," Tue "," Wed "," Thur "," Fri "," Sat ");

}

//打印月份

void printMonth(int m) {

開關(m) {

默認值:

案例1:puts("\t*****壹月* * * * *);打破;

案例二:看跌期權(" \t*****二月* * * * *);打破;

案例三:看跌期權(" \t*****三月* * * * *);打破;

案例四:看跌期權(" \ t * * * * *月* * * * *);打破;

情況五:看跌期權(" \t*****可能* * * * *);打破;

案例6:看跌期權(" \ t * * * * *月* * * * *);打破;

案例7:看跌期權(" \ t * * * * *月* * * * *);打破;

案例8:看跌期權(" \ t * * * * *月* * * * *);打破;

案例9:看跌期權(" \ t * * * * *月* * * * *);打破;

案例10:puts("\t*****十月* * * * *);打破;

case 11:puts(" \ t * * * * * 11月* * * * *);打破;

案例12:看跌期權(" \ t * * * * *月* * * * *);打破;

}

}

  • 上一篇:SIEMENS數控銑床加工中心的圖書描述
  • 下一篇:主數據的詳細內容
  • copyright 2024編程學習大全網