無題

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
お願いします!

無題

#1

投稿記事 by お願いします! » 15年前

問題文
以下の出力例のように、西暦の年を入力して、
その年に夏季オリンピックがあれば「その年に夏季オリンピックが開催されます。」、
なければ「その年に夏季オリンピックは開催されません。」
と出力するプログラムを作成しなさい。
(ヒント:夏季オリンピックは、西暦が4で割り切れる年に開催されます。)
(全角文字、半角文字に注意してください)

出力例:
西暦を入力してください:
2008
その年に夏季オリンピックが開催されます。

#include <stdio.h>

int main(void)
{
int year;

printf("西暦を入力してください:\n");
scanf("%d", &year);

//
(* ここに解答を書き加える *)


return(0);
}
//

分からないので教えてください!

Dixq (管理人)

Re:無題

#2

投稿記事 by Dixq (管理人) » 15年前

これを使う時が早速やってきましたね・・。

[flash 600,100]http://dixq.net/flash/kiyaku4.swf[/flash]

よく規約を読んで規約に沿った投稿をお願いします。
ここは宿題を誰かにやってもらう場ではないのです・・。

情報系を学びたくて専攻しているからこういう宿題が出ているわけですよね?
高いお金を払ってもらって得られている今の時間を大事にしましょう。

ということで、まず、何が解らないのかをはっきりさせて下さい。

とりあえず少し簡単な問題にしてみましょう。

問題1

入力した数値をそのまんま表示するだけのプログラムを書きましょう。

問題2

入力した数値が偶数なら「偶数です」、奇数なら「奇数です」と表示するプログラムを作りましょう。

問題3

入力した数値が4の倍数なら「4の倍数です」と表示するプログラムを作りましょう。

この3つをまずやってみませんか?

non

Re:無題

#3

投稿記事 by non » 15年前

何がわからないか、示してください。
例えば、
(1) yearを4で割ったときの余りを求める方法はわかりますか?

(2) if文の使い方はわかりますか?

(3) printfで、文字列を表示することはできますか?

Dixq (管理人)

Re:無題

#4

投稿記事 by Dixq (管理人) » 15年前

規約を読むのがめんどくさいかもしれませんから、何がダメか言いますと・・。

・宿題の丸投げ禁止
・コードをタグで囲んでいない
・自分がどの程度理解しているのか説明がない
・どこが解らないのかが明確になっていない
・環境の説明がない(使ってるコンパイラなど)
・トピックが「無題」で投稿されている

この辺直していただけると有り難いです。

Dixq (管理人)

Re:無題

#5

投稿記事 by Dixq (管理人) » 15年前

> nonさん

私の1,2,3を3,2,1にしたかのような奇跡的な被り方ですね・・w

お願いします!

Re:無題

#6

投稿記事 by お願いします! » 15年前

規約を読んでいませんでした。すみませんでした。
4で割り切れないときを表すときはどうしたいいいですか?

lbfuvab

Re:無題

#7

投稿記事 by lbfuvab » 15年前

課題で出てるなら習ってるはずです。先生に聞いてください。
ここはC言語「質問」掲示板であって「入門」掲示板でも「宿題」掲示板でもないです、あしからず。

Dixq (管理人)

Re:無題

#8

投稿記事 by Dixq (管理人) » 15年前

さっき私が言った問題は解けますか?

で、4で割り切れない云々の件ですが、

例えば、
5,10,15,20,25...

こんな5の倍数のデータがあったとしますね。
この数値をnとすると、これらは

nを5で割った余りが0であるという事が解りますよね?

ということは、5で割った余りが0であるときは、5の倍数、
5の倍数ではないという時はその否定「!」である時ですね。

では、ここで問題です。
与えられた数値nが4の倍数だったら
「4の倍数です」と表示するプログラムはどうなりますか?

たかぎ

Re:無題

#9

投稿記事 by たかぎ » 15年前

> その年に夏季オリンピックがあれば「その年に夏季オリンピックが開催されます。」、
> なければ「その年に夏季オリンピックは開催されません。」
> と出力するプログラムを作成しなさい。

この問題はやや面倒ですね。
最初の近代オリンピックがいつから始まったのか、歴史的事実を踏まえる必要があります。
また、一時期戦争が原因で中止になりましたが、それも考慮しなければなりません。
さらに、古代オリンピックも考慮に入れるのであれば、古代ギリシャ語の古文書を紐解かなければならないかもしれません。
このあたりの調査は済んでいるのでしょうか?

Dixq (管理人)

Re:無題

#10

投稿記事 by Dixq (管理人) » 15年前

>たかぎさん

まぁまぁ、先生もそこまで求めていないでしょうし、
そこまで正確に答える事は誰も望んでないと思うのでいいと思いますよ^^;

察するに、高専、専門学校1年、大学1年などの、宿題ではないでしょうか・・?

しかし、そういう省く年のデータをテキストファイルか何かに保存しておいて、
それを排除して表示するように拡張したりしたらいい勉強になりそうですね。

たかぎ

Re:無題

#11

投稿記事 by たかぎ » 15年前

> まぁまぁ、先生もそこまで求めていないでしょうし、
> そこまで正確に答える事は誰も望んでないと思うのでいいと思いますよ^^;

そこははっきりさせておいた方がよいですよ。
古代オリンピックはともかく、近代オリンピックに関しては。
閏年ではなく、夏季オリンピックの開催年だということが重要な示唆を含んでいると思います。

Dixq (管理人)

Re:無題

#12

投稿記事 by Dixq (管理人) » 15年前

厳密に言うなら、回答が未来形であることから、これからの事を答えるような気もしますが・・
それでは、まぁ最初に4の倍数で考えておいてから特別な年を排除するプログラムに改良する方向で行きますか^^;

non

Re:無題

#13

投稿記事 by non » 15年前

他の質問の程度からしても、本当は閏年の問題を出したかったけど、いきなりは無理だから、
とりあえず4の倍数のチェックだけやらしてみるかという先生の意図を感じます。

softya

Re:無題

#14

投稿記事 by softya » 15年前

>>たかぎさん
>そこははっきりさせておいた方がよいですよ。
>古代オリンピックはともかく、近代オリンピックに関しては。
>閏年ではなく、夏季オリンピックの開催年だということが重要な示唆を含んでいると思います。

私もそこまでは必要ないと思います。
そんないじわるな先生がいたら、私だったらゴネくまくりますよ。

たかぎ

Re:無題

#15

投稿記事 by たかぎ » 15年前

規約を守って質問していただけていないので、程度も真意もわかりませんね。
近代オリンピックは、1906年のアテネ中間大会のようなものもありますので、単純に計算で求めるのは無理があります。
結果的に4の倍数年でよいとしても、本当にそれでよいのかどうかを確認していないとすれば、大きな問題があります。

そもそも、学校の課題かどうかもわかりません(そんなことは書かれていませんので)。
仮に学校の課題だとしても、質問者さんは、体育学部や歴史学科の学生で、一般教養でC言語を習っているという可能性も否定できません。
その場合、歴史を調べることが課題をこなす上での重要なファクターだったとしても、何ら不思議ではありませんね。

やそ

Re:無題

#16

投稿記事 by やそ » 15年前

近代オリンピック

1896
1900
1904
(1906)
1908
1912
1920
1924
1928
1932
1936
1948
1952
1956
1960
1964
1968
1972
1976
1980
1984
1988
1992
1996
2000
2004
2008

の年に開催されていますね。1906は中間オリンピックです。
よく見ると不開催の年があります。
世界大戦が原因だそうです。
これらを正確に調べるなら、配列(変数)に入れ込んでチェックすればよいかと思います。

閉鎖

“C言語何でも質問掲示板” へ戻る