![]() |
||
Junior Member
![]() ![]() ![]() 加入日期: Jul 2004
文章: 747
|
請問C++的萬年曆程式...
#include <stdio.h>
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<year;j++) //用迴圈來計算在輸入的年份之前的總天數 { if((j%4==0)&&(j%100!=0)||(j%400==0)) //判斷閏年:年份可被4整除但不被100整除,或者可以被400整除 days+=366; //若是閏年,天數加366 else days+=365; //若是平年,天數加365 } if((year%4==0)&&(year%100!=0)||(year%400==0)) month[1]=29; //若是輸入的年份為閏年,2月的天數設為29天 for(k=0;k<12;k++) //製作1~12月的月曆輸出 { printf("\n\n\n %2d月\n\n",k+1); if(k!=0) days+=month[k-1]; //若不是在一月,天數加到當月之前的總天數 printf("日 一 二 三 四 五 六\n"); week=days+1; //計算當月第一天落在禮拜幾 for(m=0;m<(week%7);m++) printf(" "); //取餘數之值若為0,則為禮拜日,不需移位!其餘的值依序為禮拜一,二,三,...,六! //再根據禮拜幾去移動幾個單位空格以做排列修正! for(n=1;n<=month[k];n++) { printf("%2d ",n); //依序從當月的第一天輸出至最後一天 if((days+n)%7==6) printf("\n"); //若是禮拜六輸出之後,換到下一行 } } printf("\n\n"); } 程式已經寫出來了... 但是想請問幾個問題: 1.請問要輸入年月之後印出當月日曆...要怎樣寫?? (就是先印出12個月的月曆之後再輸入年月...在印出日曆) 2.請問西元跟民國有差嗎?? 是不是民國初年=西元1911年?? 3.若是加入輸入年月日 可以使用年月日查詢星期 請問那要怎麼寫啊?? 此文章於 2005-01-04 05:50 PM 被 DEVON1224 編輯. |
|||||||
![]() |
![]() |
*停權中*
加入日期: Jul 2002
文章: 72
|
我想,先印出一個功能表單,然後讓使用者選擇要做哪個功能.
然後去做使用者要求的功能,否則在(非有效的選項或離開功能)自動離開程式. 我的想法: // ============================================== //程式開始 main() { 印出功能表 while(1) { 列印字串,要求使用者輸入要做哪個功能. 等待使用者輸入 switch(使用者要做的功能) { case 0: 做印出哪一年的年月的日曆 break; case 1: 做印出哪一年月日是星期幾 break; case 2: default: return 0; // 做離開的動作. } } } // =================================================== 提供一個想法,給你參考一下.太難的我就不會了. ![]() |
||
![]() |
![]() |
Basic Member
加入日期: Aug 2003 您的住址: 洛杉磯
文章: 19
|
曆法在歷史上有幾次改變...
你這個有點小錯 ![]() |
![]() |
![]() |
Major Member
![]() 加入日期: Sep 2003 您的住址: 台北汐止
文章: 174
|
這個語法是C語言吧??
|
![]() |
![]() |
Junior Member
![]() ![]() ![]() 加入日期: Jul 2004
文章: 747
|
引用:
請問是哪裡有錯呢?? |
|
![]() |
![]() |
Junior Member
![]() ![]() ![]() 加入日期: Aug 2002 您的住址: 「天龍國」
文章: 795
|
台灣老師好像不太注重變數名稱,建議變數使用大寫方便閱讀!
1.現在不就是印出來了嗎? 2.民國=西元-1911 3.你在「week=days+1; //計算當月第一天落在禮拜幾」判斷,這不就是你的答案了嗎?
__________________
「千金難買早知道,萬般無奈想不到。」 |
![]() |
![]() |