ページ 11

教えてください。part2

Posted: 2009年11月12日(木) 09:55
by good!!
以下の問題のC言語のプログラミングがわかりません。教えてください。
・生まれた月を読み込むプログラムを作成せよ。
尚、以下のプロントタイプ宣言により示される関数を作成し、これを用いること。

int get_month(void);
ここで、関数 get_monthは、月を読み込み、その値を返す関数である。尚、関数 get_monthでは、0以下または13以上の値が入力された場合は再入力を促し、1以上12以下の値が入力されるまで処理を繰り返させること。

Re:教えてください。part2

Posted: 2009年11月12日(木) 11:01
by たかぎ
> 以下のプロントタイプ宣言により示される関数を作成し、

プロントタイプ宣言とは?
それはおいておいて、こんな感じでしょうか?
#include <stdio.h>
#include <stdlib.h>

int get_month(void)
{
	char s[3];
retry:
	if (scanf(" %2[0123456789]", s) == 1)
	{
		long month = strtol(s, NULL, 10);
		if (1 <= month && month <= 12)
			return month;
	}
	scanf("%*[^\n]"); 
	goto retry; 
}

int main(void)
{
  get_month();
}
月を読み込んでどうするかは要求されていませんので、そのまま捨てています。

Re:教えてください。part2

Posted: 2009年11月12日(木) 12:23
by good!!
ありがとうございました。