- 締切済み
C++でうるう年判定のプログラムを作りたいのですが
C++でうるう年判定のプログラムが作りたいのですが・・・ #include <iostream> using namespace std; int main() { return 0; } 問題のこの下の部分の内容が書けません 変数をa % 4という計算と%100と%400をしなければいけないことはわかっています。この式の入れ方がわかりませんif文だとは思っているのですが 表示は「<<a<<"はうるう年です";」と「<<a<<"はうるう年ではありません";」という判定を表示したいです。
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- bravy
- ベストアンサー率0% (0/2)
/* * ISO C99 Standard: 7.23 Date and time <time.h> */ #include <time.h> __isleap(year)
- 1108435
- ベストアンサー率43% (94/217)
#2です。すみません。勘違いをしてしまいました。まずは値が4で割り切れるかからはじめるべきでしたね。その中に入れ子を作って400で割り切れるか、100で割り切れるかという部分を作るべきでした。 間違いのご指摘ありがとうございます。
- asuncion
- ベストアンサー率33% (2127/6289)
>#2さん >その年が4で割り切れかつ400で割り切れるか >それならば閏年 >それ以外(4で割り切れないか、400で割り切れない) >閏年ではない この判定方法は正しくありません。 この方法では、400で割り切れる年だけがうるう年となり、実際と食い違ってしまいます。 【例】 2008年はうるう年でしたが、あなたの判定方法に従えば、平年となってしまいます。 【理由】 400で割り切れる年は、必ず4でも割り切れます。 つまり、「その年が4で割り切れかつ400で割り切れる」という条件は、 「その年が400で割り切れる」ということ「だけ」を言っているにすぎないためです。 それに、例えば1900年が平年であることを求めるための条件が どこにも出てこないのも問題です。
- 1108435
- ベストアンサー率43% (94/217)
構文は書きません、考えてください。考えるためのスクリプトを書きます。大体すぐにプログラムを書かずに、一度スクリプトを書いてみて、それに沿ってプログラムを書いてみる癖をつけてはいかがでしょうか。 { 年を入力(またはファイルから読み取り) その年が4で割り切れかつ400で割り切れるか それならば閏年 それ以外(4で割り切れないか、400で割り切れない) 閏年ではない } このスクリプトをCの構文に置き換えればプログラムになります。 はじめからプログラムを書かずに、こうやってスクリプトを書いて頭をまとめるようにしています。
- Tacosan
- ベストアンサー率23% (3656/15482)
「if文だと思っている」のならやってみればいい. どう頑張っても, 最悪「コンパイルエラーになる」か「期待通りに動作しない」くらいしかならないわけだから. 「閏年かどうか」をどのように判断するのか理解できていますか? それを言葉で表現できますか?