• ベストアンサー

西暦を入力して、うるう年かどうか判定せよ!という問題です。

西暦を入力して、うるう年かどうか判定せよ。ただしうるう年の条件は4で割り切れる、100で割り切れない、400で割り切れる。という問題です!!誰か教えて下さい!お願いします~。

質問者が選んだベストアンサー

  • ベストアンサー
  • a-kuma
  • ベストアンサー率50% (1122/2211)
回答No.5

多分、実例を見ないとさっぱり分からないんですよね。言葉で書けるのだった ら、それをそのままコードに落とせば良いのだけど、それが良く分からない んですよね。 > うるう年の条件は4で割り切れる、100で割り切れない、400で割り切れる そのまま if を使って書くと if (年が4で割り切れる) {   if (年が100で割り切れない) {     年はうるう年   } else {     if (年が400で割り切れる) {       年はうるう年     }   } } ね、そのまんまでしょ。 質問にある日本語だと「100で割り切れなくても」という条件が隠れている のを落とせるかどうか、ですね。 これをひとつの式で書こうとかすると、更に知恵を絞るわけだけど、基本は 「頭の中身を下手に変換しないで、そのままコードに出す」ことです。 # さすがに「西暦を入力して」をそのままコードにするには 知識 が要ります 後、もうひとつのアプローチ。 Web であれば、検索ページを使うのも手のひとつ。例えば google (→参考URL)で、   うるう年 判定 C をキーワードにして探してみましょう。見たいソースはすぐ近くにあります :-)

参考URL:
http://www.google.com/intl/ja/
chi-ko1
質問者

お礼

教えていただいたURLと回答を参考に判定してみました。 うるう年判定できました!!かなりスッキリしました!! 回答本当にありがとうございましたm(_ _)m

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (4)

  • boya
  • ベストアンサー率22% (44/193)
回答No.4

閏年の条件 1.4年に1度は閏年 2.ただし、100年に1度は閏年ではない 3.ただし、400年に1度は閏年 だから、西暦2000年は閏年ですが、2100年は閏年じゃないんです

chi-ko1
質問者

お礼

回答ありがとうございました!! 参考になりました。

全文を見る
すると、全ての回答が全文表示されます。
  • natural
  • ベストアンサー率37% (419/1115)
回答No.3

ヒントだけ、という点に同感ですので、恐らく迷っている点を指摘させて頂きます。 演算子の論理和、論理積をうまく使いましょう。 (解らなかったらテキストの目次を引いて調べてみましょう) 複雑な条件も「・・・または・・・」や「・・・かつ・・・」で纏めてしまえば案外すっきりするものです。

chi-ko1
質問者

お礼

回答ありがとうございました!! とても参考になりました。 なんとかうるう年判定することができました。

全文を見る
すると、全ての回答が全文表示されます。
  • nozomi500
  • ベストアンサー率15% (594/3954)
回答No.2

4の倍数で、「400の倍数をのぞいて、100の倍数でない数」というふうに考えては? 「100で割り切れない、400で割り切れる」数なんてないですから。

chi-ko1
質問者

お礼

回答ありがとうございました!! なんとかうるう年判定することができました。

全文を見る
すると、全ての回答が全文表示されます。
  • itohh
  • ベストアンサー率45% (210/459)
回答No.1

こんにちは。itohhといいます。 学校か何かの課題でしょうか、あまり、ソースコードそのものをここで 教えてしまうのもどうかと思うので、ヒントだけ。 うるう年の条件をそのまま判定してください。 (if文などで判定)

chi-ko1
質問者

お礼

if文でうるう年判定することができました!! 学校の課題だったのですが、この課題が出た日 休んでいたのでさっぱりわかりませんでした。 回答ありがとうございましたm(_ _)m

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • シェルスクリプトでうるう年判定

    宜しくお願いします。 シェルスクリプトでうるう年かどうか判定するスクリプトを作りたいです。 プロンプトで西暦を入力したらその年がうるう年かそうでないか○×表示をさせたいです。 手を貸してください。 なにぶん素人でどこからどう手をつけていったらいいのか分かりません。。 ご教授お願い致します。

  • 閏年のプログラム

    C言語(閏年)の質問です。 任意の範囲の年から閏年の表示とその数をカウントして次の実行結果のように表示するプログラムの作成で途中まではわかって修正・追加する箇所があったら一緒に教えてください。(ここでは2つの年をmain関数内で入力し、その範囲の西暦を引数とする関数checkYearを使用するものとする。int型の関数checkYearは、引数に西暦をとり、その西暦が閏年であれば、1を返し、閏年でない場合は0を返す。) なお、閏年の判定方法は以下のとおりである。 条件1 西暦年が4で割り切れる年は閏年である 条件2 条件1を満たしていても、西暦年が100で割り切れるときは閏年でない 条件3 条件2を満たしていても、西暦年が400で割り切れるならば閏年である 実行例1 西暦を入力:2000 西暦を入力:2009 2000年 2004年 2008年 閏年は3回あります。 実行例2 西暦を入力:2100 西暦を入力:2000 2000年 2004年 2008年 2012年 2016年 2020年 (省略) 2096年 閏年は25回あります。 実行例3 西暦を入力:2090 西暦を入力:2110 2092年 2096年 2104年 2108年 閏年は4回あります。 #include <iostream> bool checkYear(int year); int main() { int year; int year2; printf("西暦を入力:"); scanf("%d",year); printf("西暦を入力:"); scanf("%d",year2); int count = 0; for (int i = year; i < year2; i++) { if (checkYear(i)) { printf("%d年\n"); count++; } } printf("閏年は%d回です。\n"); return 0; } bool checkYear(int year) { return (((year % 4) == 0) && ((year % 100) != 0)) || ((year % 400) == 0); }

  • 2008は閏年であることを判定する式を作成するにあたって

    2008年は閏年であるということを判定する式を 作成しなければならないのですが、 なかなか良いアイデアが浮かばず質問に至りました。 ※閏年とは次の条件を満たす年のことをいいます。 400の倍数である。または100の倍数ではなく、かつ4の倍数の年をいう。 この問題を関数OR,IF,MOD,ANDなどを利用して判定する式を作成しなければならないのですが、納得のいく解答ができませんでした。数学や情報処理の得意な方、是非チカラを貸してください。お願いします。

  • C++でうるう年判定のプログラムを作りたいのですが

    C++でうるう年判定のプログラムが作りたいのですが・・・ #include <iostream> using namespace std; int main() { return 0; } 問題のこの下の部分の内容が書けません 変数をa % 4という計算と%100と%400をしなければいけないことはわかっています。この式の入れ方がわかりませんif文だとは思っているのですが 表示は「<<a<<"はうるう年です";」と「<<a<<"はうるう年ではありません";」という判定を表示したいです。

  • 閏年について

    Excelで「1900/2/29」と入力すると、閏年でないのに、日付として認知され、標準表示形式では「60」と表示されます。1900年は閏年として認識しているのでしょうか?Visual Basicで西暦と和暦のプログラムを作成(1900年未満)している途中で計算が合わなくなり、この疑問にぶつかりました。回答をよろしくお願いします。

  • 閏年と平年の求め方

    うるう年は西暦年が4で割り切れる年。   ただし100で割り切れても400で割り切れないときは閏年としない 平年は閏年でない年 2001年から2401年の400年の間にうるう年は何回あるかを求める。 この問題なんですがどうやって計算すればいいか解りません。 なるべく式も一緒に教えて下さい。 宜しくお願いします。

  • エクセルVBAで、うるう年の判定

    エクセルVBAで、うるう年の判定をしなければなりません。 簡単に判定できる方法があったら、教えてください。

  • bash 閏年

    shellについて初めて勉強しています。 複数のコマンドライン引数で西暦を与えると,閏年かどうか判定する bashのファイルを作成しているのですが, なかなかうまくいきません。 どのように改善したらよいでしょうか? #!/bin/bash if [ ${DATE_YYYY}%4 -eq 0 -a \ ! ${DATE_YYYY}%100 -eq 0 -o \ ${DATE_YYYY}%400 -eq 0 ] then # 閏年 else # 閏年以外 fi

  • 閏年自動判定

    プログラム初心者です。 VbScript(ASP)で以下のプログラムを書く場合の書き方を教えてください。 閏年を自動的に判定し、以下の処理をしたいです。 前年同月の集計結果を表示したいです。 その判別は以下の通りです。 (1)もし当年が閏年で無く、前年が閏年の場合  2/28日に集計すると前年分は2/29(までの)のものを表示 (2)もし当年が閏年の場合、2/29に集計すると  前年分は2/28(までの)のものを集計 宜しくお願いします。

  • うるう年かどうかを計算するプログラミング

    西暦何年かを入力し、その年がうるう年かそうでないかを 計算するプログラムを作っています。 #include <iostream> using namespace std; int main() { int toshi; cout <<"西暦を入力してください"; cin>>toshi; if (toshi%4==0) {if (toshi%100==0) {if (toshi%400==0) {cout<<toshi<<"年はうるう年です。";} else {cout<<toshi<<"年は非うるう年です。";} else {cout<<toshi<<"年は非うるう年です。";} else {cout<<toshi<<"年は非うるう年です。";}}} return EXIT_SUCCESS; } これを入力したのですが エラーが2つでてしまいます。 どこがちがうのでしょうか?

このQ&Aのポイント
  • 新しいPCにインストールしようとした際に、MFC-J6770CDWでE3エラーが発生します。
  • お使いの環境はWindowsで、無線LANで接続しています。
  • 関連するソフト・アプリは特にありません。
回答を見る

専門家に質問してみよう