2009年12月8日 星期二

任意輸出年曆...(有陰謀的@__@)

//這個程式不見得是最好的寫法,歡迎同學務必把它改得更好。

#include <stdio.h>
#include <stdlib.h>
int ouput(int space,int month);

int main()
{
    int m,month,year,space,bissextile=0;
    while(1)
    {
        printf("----------------------------\nYear:");
        scanf("%d",&year);
        //當輸入小於1980年時跳出程式,
        if(year<1980)
        {
            printf("Can not be calculated!!\n");
            break;
        }
      /*想辦法寫出該年一開始空格數量的計算式,
        先不公佈我的寫法自己先想想看。*/
        space=???????????;
        //判斷該年是否為閏年
        if((year-1980)%4==0)
            bissextile=1;
        //判斷不同月份的大小月
        for(m=1;m<=12;m++)
        {
            if(m==4||m==6||m==9||m==11)
            {
                month=30;
            }
            else if(m==2&&bissextile==1)
            {
                month=29;
            }
            else if(m==2&&bissextile==0)
            {
                month=28;
            }
            else
            {
                month=31;
            }
            printf("\nMonth %d :\n",m);
            //呼叫先前打過的月曆程式
            ouput(space,month);
            //先計算出下個月該空幾格
            space=(space+month)%7;
        }
    }
    system("pause");
    return 0;
}

int ouput(int space,int month)
{
    int i,day=1;
    printf(" SUN MON TUE WED THU FRI SAT\n");
    for(i=1;i<=month+space;i++)
    {
        if(i<=space)
        {
            //每個日期的四格間距
            printf("    ");
        }
        else
        {
            // (i 除以7的餘數)不等於 0
            if((i%7)!=0)
            {
                printf("%4d",day);
            }
            else
            {
                printf("%4d\n",day);
            }
            day++;
        }
    }
    printf("\n");
    return 0;
}


  ︿ ︿
(#゜Д゜)ノシ 噓...這是個秘密:
第二次考試會考年曆~(都洩題了你(妳)還考不好挖嘛恩災怎麼辦才好了啦>△<")
當然第二次考試答案一定不會是照抄就答對的,
這題你要能夠有能力自己寫出來,
不然你(妳)還是沒辦法答對唷~XDDDD+

沒有留言:

張貼留言