アプリ版:「スタンプのみでお礼する」機能のリリースについて

基本的なプログラム

学校の教科書に載っている問題がわかりません。
是非教えて下さい。
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けたの整数ってゆうのはどう書けばいいんでしょうか?
実際にこのプログラムは動くのでしょうか?
もっと省略して書くことができるのでしょうか?  等、色々わからないことばかりです。
プログラミングの授業自体に苦手意識を持っているので得意ではありません。
間違いなど指摘していただけたらと思います!!
よろしくお願いします!

A 回答 (1件)

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




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

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

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

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

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

 このようにすれば良いと思います。
    • good
    • 0
この回答へのお礼

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

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

お礼日時:2010/10/13 19:16

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!