全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:3600
推到 Plurk!
推到 Facebook!

C語言的萬年曆程式疑問

尚未結案
yuyualex
一般會員


發表:2
回覆:0
積分:0
註冊:2004-12-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-12-04 17:40:09 IP:211.76.xxx.xxx 未訂閱
關於下面的程式我有幾個疑問
#include 
void main()
{
        int i,j,k,m,n,week,year,days=0,month[12]={31,28,31,30,31,30,31,31,30,31,30,31};
        //宣告變數以及月份天數之陣列
        printf("請輸入您要的年份!但請不要輸入小於1的數!\n");
        for(i=0;i<1;i  )    //設定迴圈以檢驗輸入的值是否符合規定
        {
                printf("西元:");
                scanf("%d",&year);
                if(year<1)      //若輸入的年份低於1,則需重新輸入!
                {
                        printf("對不起!您輸入到少於1的數了,請重新輸入一次!\n");
                        i--;
                }
        }
        printf("\n\n              西元%d年\n",year);
        for(j=1;j    1.大大我有好多疑問啊 
week=days 1這一行程式開始
為什麼可以算出當月第一天落在禮拜幾
我看不太懂啊    2.那如果我要3*4的方式印出整年日曆
就是1~3月在第一列
4~6月第二列以此類推
也就是說怎麼在一個畫面顯示出整年的日曆
要怎麼換行啊    3.若是加入輸入年跟月
只要顯示某一個月的日曆
那是不是只要加switch指令去做判斷就好了呀
還是要怎麼寫    4.若是加入輸入年月日
可以使用年月日查詢星期
那要怎麼寫啊        
        
pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-12-14 16:05:46 IP:210.69.xxx.xxx 未訂閱
0.這個程式不是很好, 建議您了解邏輯, 自己重新寫 因為 days 宣告為整數, 有最大值, 超過可能發生出乎意料的結果 1. 一般是選某年某天某月 當基準點, 然後計算到今天共幾天 (過程中最好用 mod 7 運算, 避免天數值過大) days = 0 days = (days 至今每年的天數 (完整年) ) mod 7 days = (days 今年中, 至今每月的天數 (完整月) ) mod 7 days = (days 今年今月中, 至今天數 ) mod 7 week= (days 基準日是星期幾) mod 7 week 就是今天星期幾 2.那如果我要3*4的方式印出整年日曆 就是1~3月在第一列 4~6月第二列以此類推 也就是說怎麼在一個畫面顯示出整年的日曆 要怎麼換行啊 => 用一個大的陣列去儲存, 用 (3*7, 4*6) = (21, 24) 的陣列 最後將陣列畫出來 3.若是加入輸入年跟月 只要顯示某一個月的日曆 那是不是只要加switch指令去做判斷就好了呀 還是要怎麼寫 => 可以更簡化, 上面已經寫原理了 4.若是加入輸入年月日 可以使用年月日查詢星期 那要怎麼寫啊 => 上面已經寫原理了
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
系統時間:2024-04-29 10:49:28
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!