こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

基本的なプログラム

基本的なプログラム

学校の教科書に載っている問題がわかりません。
是非教えて下さい。
Cによる基本的な条件分岐(if,else if文)のプログラムです。

西暦年(4けたの整数)を入力し、その年がうるう年かどうかを判断するプログラムを作りなさい。
4で割り切れるときはうるう年であるが、100で割り切れるときはうるう年ではない。
しかし、400で割り切れればうるう年である。

・・・とゆう問題文です。

#include<stdio.h>
int main(void)
{
int x;
printf("西暦を入力して下さい¥n");
scanf("%d",&x);
if(x%4==0)
printf("うるう年である¥n");
else if(x%400==0)
printf("うるう年である¥n");
else if(x%100!==0)
printf("うるう年でない¥n");
else
printf("うるう年でない¥n");
return 0;
}

・・・とりあえず自分で考えてみたのですがどうでしょうか;
間違ってると思いますが頑張って考えました・・・;;

4けたの整数ってゆうのはどう書けばいいんでしょうか?
実際にこのプログラムは動くのでしょうか?
もっと省略して書くことができるのでしょうか?  等、色々わからないことばかりです。
プログラミングの授業自体に苦手意識を持っているので得意ではありません。
間違いなど指摘していただけたらと思います!!
よろしくお願いします!

投稿日時 - 2010-10-13 17:17:14

QNo.6247561

すぐに回答ほしいです

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

判断の方法として、結果が一意になるように、判定文の順序を考えましょう。


 ※上記の判定順の、"4で割り切れる" だけでは、一意に確定しません。

  
  1:  if【4で割り切れない】 ・・・ 閏年ではない。

  2:  else if【100で割り切れない】 ・・・ 閏年である。
           ※4で割り切れるが、100では割り切れない。

  3:  else if【400で割り切れる】 ・・・  閏年である。
           ※4でも100でも400でも割り切れる。

  4:  else ・・・ 閏年ではない。
           ※4で割り切れるが、100でも割り切れる。

 このようにすれば良いと思います。

投稿日時 - 2010-10-13 17:31:31

お礼

ありがとうございます!
明日テストがあってとても困ってたんです;;

ほんとにありがとうございました。

投稿日時 - 2010-10-13 19:16:25

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問