演習8ー5
問: 性別や季節などを表す列挙体を自由に定義し、それを用いたプログラムを作成せよ。
// Ex0805.c
#include <stdio.h>
enum season {
Invalid, January, February, March, April, May, June, July, August, September, October, November, December,
};
void spring(void)
{
printf("春デス。\n");
}
void summer(void)
{
printf("夏デス。\n");
}
void autumn(void)
{
printf("秋デス。\n");
}
void winter(void)
{
printf("冬デス。\n");
}
enum season select1(void)
{
int tmp;
do {
printf("誕生月ヲニュウリョクセヨ(0デ終了)\n");
scanf("%d", &tmp);
} while (tmp < Invalid || tmp > December);
return tmp;
}
int main(void)
{
enum season selected;
do {
switch (selected = select1()) {
case January:
case February:
case December: winter(); break;
case March:
case April:
case May: spring(); break;
case June:
case July:
case August: summer(); break;
case September:
case October:
case November: autumn(); break;
}
} while (selected != Invalid);
return 0;
}
コメント
selectをselect1にしている理由は、selectのままだと「Conflicting types for ‘select’」という競合エラーが出るからです。mac環境のせいかな?
書籍情報
コメント