• ベストアンサー

日数チェックプログラム

c++言語で西暦と月を入力してその年月の日数を表示するプログラムを教えてください #define CRT_SECURE_NO_DEPRECATE #include <stdio.h> int nisuu_chk(int,int); int uru_chk(int,int); void main(void) { int yy,mm; char dsp[4]={28,29,30,31}; printf("年(西暦:4桁)を入力して下さい"); scanf("%d",&yy); printf("月を入力して下さい"); scanf("%d",&mm); printf("%d年%d月は%d日まであります",yy,mm,nisuu_chk(yy,mm)); } ここから先がわかりません。 だれか、教えてください

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

  • ベストアンサー
  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.5

>考えてもわかりませんので、教えてください。 int nisuu_chk(int nen,int tuki) { // 月が2月以外はその月の日数は決まっている。 // 1月なら31日、3月なら31日、4月なら30日・・・以下同様 if (tuki==1) return 31; if (tuki==3) return 31; if (tuki==4) return 30; ・・・以下同様 //最後に2月だけが残る。 //うるう年なら29日、そうでないなら28日になる。 if (uru_chk(nen,tuki)==1) return 29;//ここがうるう年 return 28;//ここはうるう年でないケース } int uru_chk(int nen,tuki) { //月はみない、年だけをみる。 //うるう年なら1を返す、そうでないなら0をかえす //うるう年4年に1回ある。2000,2004のように4で割り切れる //年をうるう年とする。(厳密には違うが・・・) //4で割り切れるというのは、4で割ったあまりが0のこと if (nen%4==0) return 1; //これがうるう年 return 0; //残りはそうでない年 }

80221
質問者

お礼

できました。 ありがとうございます。

その他の回答 (5)

回答No.6

#include <stdio.h> int isleap(int y) { return !(y % 400) || (y % 100) && !(y % 4); } int days(int y, int m) { return 31 - ((m + (m < 8)) & 1) - (m == 2) * (2 - isleap(y)); } int main(void) { int y, m; scanf("%d %d", &y, &m); printf("%d\n", days(y, m)); return 0; }

  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.4

>int nisuu_chk(int nen,int tuki) >{ >ここからわかりません 早っ!

80221
質問者

補足

考えてもわかりませんので、教えてください。

noname#88772
noname#88772
回答No.3

こんにちは。 前の投稿は締め切った方がいいですよ。 手順だけ載せますので後のコーディングは自力でどうぞ。 #include <stdio.h> int nisuu_chk(int,int); int uru_chk(int,int); void main(void) { /* 年と月の入力 */ /* nisuu_chk()で日数を取得 */ /* 結果を出力 */ } int nisuu_chk(int yy,int mm) { /* 各月の日数リストを宣言しておく */ /* 月に対応した日数を取得 */ /* もしうるう年の関連月なら調整 */ /* 日数を返す */ } int uru_chk(int yy,int mm) { /* うるう年かどうかをチェック */ /* うるう年かどうかを返す */ } ご参考までに。

  • tatsu99
  • ベストアンサー率52% (391/751)
回答No.2

ここのサイトは期待した結果が得られないと思いますので、 参考URLのほうに投稿されてみてはいかがでしょうか?

参考URL:
http://www23.atwiki.jp/homework/pages/4.html
  • koko_u_
  • ベストアンサー率18% (459/2509)
回答No.1

>ここから先がわかりません。 次は nisuu_chk() を実装しましょう。補足にどうぞ。

80221
質問者

補足

int nisuu_chk(int nen,int tuki) { ここからわかりません

関連するQ&A