• 締切済み

プログラミング

大学のプログラミングの課題です。「西暦年を入力して、その年が閏年であるか、ないかを判定しなさい。閏年は4で割り切れる年です。ただし、4で割り切れても100で割り切れる年の内、400で割り切れない年は、閏年ではありません。」なかなか上手くできません。

みんなの回答

  • hisappy
  • ベストアンサー率46% (184/392)
回答No.5

閏年フラグ = false;(閏年ではない) if((年/4)の余り = 0)   閏年フラグ = true;ひとまず閏年。 if((年/100)の余り = 0) 閏年フラグ = false;やっぱり閏年じゃない。 if((年/400)の余り = 0) 閏年フラグ = true;閏年例外特例。 if(で、結局閏年?) 質問文で挙げている内容の言い回しがややこしいだけで、 言われている事をベタでコーディングして、 そのコーディングを日本語に再翻訳して 同じ事を言っているか確認すればいいだけです。 実際には実行して期待される結果が得られるかになりますが。 コーディングの前(のフローチャート作成の前)の、 必要な情報が整理できていないと何も始まりません。 ・・・まさか、「入力の受付方法が分からない」(無線キーボードで電波が途切れる) とか、「マシンだけあって、開発環境からの構築まで必要」 なんていう課題じゃないですよね。

全文を見る
すると、全ての回答が全文表示されます。
  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.4

(1)4で割り切れる年の集合 (2)(1)の中で100で割り切れる年集合 (3)(2)のうち400で割り切れる年の集合 これらをベン図式を書いて考えること。 >プログラミング 言語は何ですか?それを書く必要がある、ということも認識できないレベルでは、説明を受けてもだめ。 ーー それに現在では、WEBの記事が拡充して、WEB記事を見てはいけないとはいえない時代になっている。質問コーナーに出すより、WEB照会して考えるほうが、勉強(修正の勉強など)になるだろう。K大入試問題のカニングで問題になったが、直ぐこういう質問コーナーに質問するのは、避けるべきだ。この問題も宿題の回答ではないのか。先生にとっては偽計業務妨害に当たるという説も出たぐらい ーー Googleで「言語種類 うるう年の判定」(言語種類は具体的名に置き換えること)で照会すれば沢山記事がある。 VBAなら http://okwave.jp/qa/q1239856.html の#4などに出ている。 ただしエクセルでは日付は日付シリアル値というものに変換するが、その年の幅で注意が必要。19世紀までの日付の年などにはそのままは使えない。

mocyobi
質問者

お礼

回答ありがとうございます。分かりやすいく、回答してくださり、ありがとうございます。再度挑戦してみます。

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

こういう質問を見るたびにFizz-Buzz問題を思い出す。 http://www.aoky.net/articles/jeff_atwood/why_cant_programmers_program.htm 上手くいくいかないのレベルではないんだよね。 日本語の通りコード化して、そこに基本文法以外の 要素は含まれないから、上手くいかなくてもその 理由を自分の力だけで明確に把握できる。 単純な思考と試行の問題で、他人に質問するくらい なら諦めた方がいいよ。 答えは全く簡単なんだけど、課題として出されている 意味は、この思考を鍛える部分だから。

mocyobi
質問者

お礼

回答ありがとうございます。ごもっともですね。自分でやらなければ課題ではないですよね。

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

ふつーの回答としては、 ・入力受付。 (1)100で割り切れるなら(2)へ それ以外は(3)へ (2)400で割り切れるなら、うるう年確定。それ以外は(4)へ (3)4で割り切れるなら、うるう年確定。それ以外は(4)へ (4)うるう年ではないですね。 end の順で判定してけばいいのでは? 問題文通りに解こうとして、変数を4で割った後さらに100で割ろうとかしてませんか?

mocyobi
質問者

お礼

回答ありがとうございます。納得です。順番をしっかり守って再度挑戦してみます。

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

普通に勉強していれば何でもない問題ですね。 来年も履修して今度はまじめに勉強しましょう。

mocyobi
質問者

お礼

回答ありがとうございます。そうですよね!真面目に頑張ります。

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

関連するQ&A

  • C言語のプログラミングについて

    私は大学2年なのですが、現在留年するかしないかというぎりぎりのところに立っています。好意で単位をなんとかしてくれる教授を探し出し、C言語の宿題を出されました。ですが私は根っからの文型で、プログラミングなどしたこともありません。教科書を図書館で借りて読んでみるものの、すぐ理解できるような難易度ではないことだけがわかりました。 そこでもしよろしければ、プログラムを教えてもらいたいです。 1.キーボードから整数の入力を繰り返す。0以下の値が入力されたら終了し、入力した値の中の最小値を表示する。また、それが何番目に入力された値かもあわせて表示する。(6つの整数を入力、最後の整数は0を入力することとする。) 実行結果例 整数を入力: 6 整数を入力: 5 整数を入力: 4 整数を入力: 3 整数を入力: 2 整数を入力: 1 整数を入力: 0 最小値は6番目の1 2.キーボードから整数の入力を4回繰り返し、それらの値を2次元配列Aの各要素に順に代入し、その行列のそれぞれの要素と行列式を表示するプログラムを作成せよ。 実行結果例 1行1列の要素? 6 1行2列の要素? 5 2行1列の要素? 4 2行2列の要素? 3 行列A = 6 5 4 3 行列式 = 2 3.キーボードから西暦年を入力し,その年が閏年のときは「○○年はうるう年です」と表示し,そうでないならば「○○年はうるう年ではありません」と表示するプログラムを作成しなさい. なお,閏年の定義は以下の通りである. ・西暦年が4で割り切れる年は閏年 ・ただし,西暦年が100で割り切れる年は平年 ・ただし,西暦年が400で割り切れる年は閏年 実行結果例 西暦年を入力してください. 1987 1987 年はXXXXXXXX 一時的ではありますが、皆様のお力をお借りしたいです。 もちろん、ここでお答えをもらってもわからないままにせずに、無事進級することができたら独学で勉強しようとは思ってます。 なお、理系の人たちはVisualBasicというソフトを使っているようです。よろしくお願い致します。

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

    西暦何年かを入力し、その年がうるう年かそうでないかを 計算するプログラムを作っています。 #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つでてしまいます。 どこがちがうのでしょうか?

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

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

  • Visual C++で・・・・。

    以下の問題の答えを教えてくれませんか? 授業でVisual C++を習っていて、コレは課題ではありませんが、テスト対策用の問題で、答えがありません。 どなたか、どうかよろしくお願いします。 西暦(うるう年の判定) main関数:西暦の入力(入力された年=n) main関数:void uruu(int m)とする。    この関数の中で判定して、西暦とその結果を出力    この場合は戻り値を考える必要はない=>void    判定の内容は4で割り切れるか、100で割り切れるか、      さらに400で割り切れるかの条件 応用 5種類の西暦を入力して、入力した西暦を出力させて判定するように変更    main関数の中で西暦の入力と関数の実行を5回繰り返す。

  • 閏年のプログラム

    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); }

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

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

  • Tiny Basicのプログラムで。。

    西暦年数を入力し、うるう年かどうかの判定を行うプログラムを作成せよ。 うるう年は400で割り切れる年数または4で割り切れ、かつ100で割り切れない年数です。0(ゼロ)を入力するとプログラムを終了し、0以外を入力したときには判定結果を表示し、そのまま次の入力待ちとなり、連続して判定できるようにしなさい。 っていうのをつくりたくて cls input A Select Case A=A Case A=(A/400) print"うるう年" Case A=(A/4)and(A) っていうとこまで作ったんです>< この次はどうしたら。。 てか、割り切れないっていうのはどうやって表したらいいんですか?

  • プログラミングの授業で自由にプログラムするという課題を出されたんですが

    プログラミングの授業で自由にプログラムするという課題を出されたんですが、正直難しくて分かりません;; ちなみに授業はJAVAでのプログラミングをしてます。(ソフトはAll-In-One-Eclipseです) そこで、今日の日付と生年月日を西暦で入力して、誕生日から何日経過したかを計算するプログラムを作成したいんですが、JAVAが分かる方、教えていただけませんか? よろしくお願いします!!

    • ベストアンサー
    • Java
  • プログラミングに向いていないのか・・・ 

    先日大学でプログラミングの課題が出ました。 一人で試行錯誤しながら、なんとか一つのプログラミングを仕上げましたが達成感がありません。 分からないところは悔しいから何時間も費やしたのに、仕上げた後は「あー、やっと終わったー」って感じです。 僕はプログラミングに向いていないのでしょうか?

  • プログラミング

    今度大学のAO入試で論理的思考を伴うような課題がだされます 去年は6角形などをプログラミングで書く課題が出されました そこで図形などがプログラミングで書けるソフトとかないでしょうか? また、こんなのが出そうとか分かるかたいないでしょうか? アドバイスお願いします 理系で情報系の学部です