C/C++の宿題を片付けます 83代目
レス数が950を超えています。1000を超えると書き込みができなくなります。
0968デフォルトの名無しさん
2007/03/04(日) 06:44:23[2] 問題文(含コード&リンク): 西暦で入力した年月のカレンダーを表示する。
例:
年を入力 > 2007
月を入力 > 3
2007/3
日 月 火 水 木 金 土
1 2 3(以下略
[3] 環境
[3.1] OS: 特に問いません(回答者の環境で
[3.2] コンパイラ名とバージョン: 同上
[3.3] 言語: C言語
[4] 期限: 無し(暇じゃなくなるまでw)
[5] その他の制限:
※ソースはうpろだ推奨です。
・以下の条件を満たす関数を独自で定義して、適当に用いる。
1, 与えられた年をもとに閏年か否かを判別して、閏年なら1、そうでないなら0を返す関数
この関数を用いて、2月の日数を制御すること。
2, 与えられた年・月をもとに、西暦1年1月1日からその年、月の1日までの合計日数を返す関数。
合計日数を7で割った余り0〜6がそれぞれ日〜土曜日に該当する。
例えば、2007年3月1日までの合計日数は 732736 で、これを割った余りは4 → 1日は木曜日となる
それをもとに入力された年・月の1日が何曜日から始まるかが求められるようにする。
・とりあえず閏年判定が妥当であるかの確認の為、『西暦1年1月1日』が存在し 月曜日 であったと仮定する。
・ありえない年(0以下)及び月(1〜12以外)が入力されたら、再入力またはエラーを吐いて終了。
・扱う値の型はすべてint型とする。日数の表示の書式には %2d を用いる。
・次スレ又はまともな質問が来たら終了w
可哀想な>>939のために、ちょっと書き直してみた。
こうすると、多少はまともな問題に見えなくもないような気がしないでもない
まあもう>>964が回答例出しちゃったけど。。。
レス数が950を超えています。1000を超えると書き込みができなくなります。