91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C語言 萬年歷程序

發布時間:2020-07-04 11:17:51 來源:網絡 閱讀:544 作者:990487026 欄目:開發技術


C語言 萬年歷程序


原代碼:

chunli@Linux:~/c++$ cat 123.c 
#include<stdio.h>
 
#define Mon   1
#define Tues  2
#define Wed   3
#define Thur  4
#define Fri   5
#define Sat   6
#define Sun   0
 
#define January_days   31
#define February_days   28
#define March_days    31
#define April_days    30
#define May_days     31
#define June_days     30
#define July_days     31
#define August_days    31
#define September_days  30
#define October_days   31
#define November_days   30
#define December_days   31
 
#define first1month January_days
#define first2month January_days+February_days
#define first3month January_days+February_days+March_days
#define first4month January_days+February_days+March_days+April_days
#define first5month January_days+February_days+March_days+April_days+May_days
#define first6month January_days+February_days+March_days+April_days+May_days+June_days
#define first7month January_days+February_days+March_days+April_days+May_days+June_days+July_days
#define first8month January_days+February_days+March_days+April_days+May_days+June_days +July_days+August_days
#define first9month January_days+February_days+March_days+April_days+May_days+June_days +July_days+August_days+September_days
#define first10month January_days+February_days+March_days+April_days+May_days+June_days+July_days+August_days+September_days+October_days
#define first11month January_days+February_days+March_days+April_days+May_days+June_days+July_days+August_days+September_days+October_days+November_days
 
int known_weekday = Tues;
int known_year = 1901;
int konwn_month = 1;
int known_day = 1;
 
int day_count(int month)
{   
    switch(month)
    {
        case 1: return 0;break;
        case 2: return first1month;break;
        case 3: return first2month;break;
        case 4: return first3month;break;
        case 5: return first4month;break;
        case 6: return first5month;break;
        case 7: return first6month;break;
        case 8: return first7month;break;
        case 9: return first8month;break;
        case 10: return first9month;break;
        case 11: return first10month;break;
        case 12: return first11month;break;
    }
}
 
 
char * month_name(int month)
{
    switch(month)
    {
        case 1:
            return "一月";
            break;
        case 2:
            return "二月";
            break;
        case 3:
            return "三月";
            break;
        case 4:
            return "四月";
            break;
        case 5:
            return "五月";
            break;
        case 6:
            return "六月";
            break;
        case 7:
            return "七月";
            break;
        case 8:
            return "八月";
            break;
        case 9:
            return "九月";
            break;
        case 10:
            return "十月";
            break;
        case 11:
            return "十一月";
            break;
        case 12:
            return "十二月";
            break;
        default:
            break;
    }
}
 
/*按格式打印某年某月名稱*/
void first_line_print(int month, int year)
{
    //printf("%20s %d \n",month_name(month),year);
    printf("%8d年 %s \n",year, month_name(month));
}
 
/*按格式打印星期名稱*/
void week_print()
{
    //printf("%-6s%-6s%-6s%-6s%-6s%-6s%-6s\n","Sun.", "Mon.", "Tues.", "Wed.", "Thur.", "Fri.", "Sat.");
    printf("%-4s%-4s%-4s%-4s%-4s%-4s%-4s\n","日", "一", "二", "三", "四", "五", "六");
}
 
/*計算該年該月份與已知日子之間的距離天數*/
int date_distance_count(int month, int year)
{
    int leap_year_count = 0;
    int i;
    int distance;
 
    if (year > known_year)
    {
        for (i=known_year; i<year; i++)
        {
            if(((i%4 == 0) && (i%100 != 0) ) || (i%400 == 0))
            {
                leap_year_count++;      
            }
        }
 
        if (month > 2)
        {
            if(((year%4 == 0) && (year%100 != 0) ) || (year%400 == 0))
            {
                leap_year_count++;      
            }
        }
    }
    else
    if (year == known_year)
    {
        if (month > 2)
        {
            leap_year_count = 1;
        }
    }
     
 
    distance = (year - known_year)*365 + leap_year_count + day_count(month);
 
    return distance;    
}
 
/*確定該月份第一天是星期幾*/
int makesure_firstday_weekday(int month, int year)
{
    int date_distance = 0;
    int weekday;
 
    date_distance = date_distance_count(month, year);
    weekday = (known_weekday + date_distance)%7;
 
    return weekday; 
}
 
/*依次打印出該月份的日子*/
void print_in_turn(int month, int firstday, int year)
{
    int i = 1;
    int weekday;
 
    switch(firstday)
    {
        case Sun:
            break;
        case Mon:
            printf("%-3s","");
            break;
        case Tues:
            printf("%-6s","");
            break;
        case Wed:
            printf("%-9s","");
            break;
        case Thur:
            printf("%-12s","");
            break;
        case Fri:
            printf("%-15s","");
            break;
        case Sat:
            printf("%-18s","");
            break;
    }
 
    switch(month)
    {
        case 1:
        case 3:
        case 5:
        case 7:
        case 8:
        case 10:
        case 12:
        {
            for(i=0; i<31; i++)
            {
                weekday = (firstday + i)%7;
                printf("%-3d",i+1);
                 
                if(weekday == Sat)
                {
                    printf("\n");
                }                   
            }
            break;
        }
        case 2:
        {
            if(((year%4 == 0) && (year%100 != 0) ) || (year%400 == 0)) /*閏年*/
            {
                for(i=0; i<29; i++)
                {
                    weekday = (firstday + i)%7;
                    printf("%-3d",i+1);
                     
                    if(weekday == Sat)
                    {
                        printf("\n");
                    }                   
                }
                break;
            }
            else /*平年*/
            {
                for(i=0; i<28; i++)
                {
                    weekday = (firstday + i)%7;
                    printf("%-3d",i+1);
                     
                    if(weekday == Sat)
                    {
                        printf("\n");
                    }                   
                }
                break;
            }
         
        }
        case 4:
        case 6:
        case 9:
        case 11:
        {
            for(i=0; i<30; i++)
            {
                weekday = (firstday + i)%7;/*計算該天是星期幾*/
                printf("%-3d",i+1);
                 
                if(weekday == Sat)
                {
                    printf("\n");/*如果是星期六,則換行*/
                }                   
            }
            break;
        }           
    }
}
 
void date_print(int month, int year)
{
    int firstday;
 
    firstday = makesure_firstday_weekday(month, year);
    print_in_turn(month, firstday, year);
    printf("\n");
}
 
void main_month(int month, int year)
{
    first_line_print(month, year);
    week_print();
    date_print(month, year);
    printf("\n\n");
}
 
void main_calendar(int year)
{
    int i;
    for(i=1; i<=12; i++)
    {
        main_month(i, year);
    }
}
 
int main()
{
    int year;
 
    printf("請輸入年份:year = ");
    scanf("%d",&year);
    printf("\n");
 
    while(year < 1902)
    {
        printf("請輸入大于1901的年份\n");
        printf("請輸入年份:year = ");
        scanf("%d",&year);
        printf("\n");
    }
     
    main_calendar(year);
    return 0;
}
chunli@Linux:~/c++$




編譯運行:

chunli@Linux:~/c++$ gcc 123.c  && ./a.out 
請輸入年份:year = 2016

    2016年 一月 
日 一 二 三 四 五 六 
               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 


    2016年 二月 
日 一 二 三 四 五 六 
   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 


    2016年 三月 
日 一 二 三 四 五 六 
      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 


    2016年 四月 
日 一 二 三 四 五 六 
               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 



    2016年 五月 
日 一 二 三 四 五 六 
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 


    2016年 六月 
日 一 二 三 四 五 六 
         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 


    2016年 七月 
日 一 二 三 四 五 六 
               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 


    2016年 八月 
日 一 二 三 四 五 六 
   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 


    2016年 九月 
日 一 二 三 四 五 六 
            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 


    2016年 十月 
日 一 二 三 四 五 六 
                  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 


    2016年 十一月 
日 一 二 三 四 五 六 
      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 


    2016年 十二月 
日 一 二 三 四 五 六 
            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 



chunli@Linux:~/c++$


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

凉城县| 太湖县| 济源市| 吉安县| 永靖县| 色达县| 营山县| 田林县| 方城县| 大兴区| 时尚| 昭平县| 克什克腾旗| 陕西省| 广东省| 三河市| 宁远县| 张北县| 宁陵县| 建平县| 汶上县| 洞口县| 尖扎县| 白沙| 大丰市| 瑞安市| 县级市| 东宁县| 农安县| 盘山县| 时尚| 曲周县| 密山市| 鹿泉市| 芦溪县| 三明市| 缙云县| 大竹县| 滁州市| 丹寨县| 扶余县|