無題

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

無題

#1

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

問題文
以下の出力例のように、月を入力して、その日数を返すプログラムを作成しなさい。

出力例:
月を入力してください:
9
9月は30日あります。


解答
#include <stdio.h>
int main(void)
{
int month, days;
puts("月を入力してください:");
scanf("%d",&month);

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


printf("%d月は%d日あります。\n", month, days);
return(0);
}
//

この問題も答え教えてください!

softya

Re:無題

#2

投稿記事 by softya » 15年前

規約と注意事項をよく読んで、補足を願います。
http://dixq.net/board/board.html

non

Re:無題

#3

投稿記事 by non » 15年前

質問ですが、2月は何日ありますか?

たかぎ

Re:無題

#4

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

規約を守らない質問者のことはどうでもよいですが、他に読んでいる人にとって、もしかすると役に立つかもしれませんので...
#include <stdio.h>
int main(void)
{
int month, days;
puts("月を入力してください:");
scanf("%d",&month);

//
    sub(month);
}

#include <time.h>

int sub(month)
    int month;
{
    time_t timer = time(NULL);
    struct tm t = *localtime(&timer);
    t.tm_mon = month;
    t.tm_mday = 0;
    mktime(&t);
    int days = t.tm_mday;

printf("%d月は%d日あります。\n", month, days);
return(0);
}
//
こんな感じでどうでしょうか?
閏年かどうかは、実行した年について判断しています。

non

Re:無題

#5

投稿記事 by non » 15年前

t.tm_mon = month;
t.tm_mday = 0;
なるほど、こんなテクニックがあるのですね。勉強になります。

sizuma

Re:無題

#6

投稿記事 by sizuma » 15年前

>t.tm_mon = month;
>t.tm_mday = 0;
>mktime(&t);

なるほど、tmの仕様でmktime関数を使えばこんなことができるんですね。

閉鎖

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