和暦変換
Posted: 2015年9月18日(金) 22:39
引数として生年月日を受け取り、和暦変換する。和暦は昭和から平成でよい。年号に注意する。昭和以前、2015年以降ならmain関数で判定し、エラーを出力する。
プログラムを作りましたが、間違っているようです。問題と違うのはわかりましたが、どうすればよいですか?
プログラムを作りましたが、間違っているようです。問題と違うのはわかりましたが、どうすればよいですか?
#include <stdio.h>
void print_wareki(int year,int month,int day);
int main(void)
{
int year;
int month;
int day;
int result;
printf("西暦を入力してください。\n");
scanf("%d",&year);
printf("月を入力してください。\n");
scanf("%d",&month);
printf("日を入力してください。\n");
scanf("%d",&day);
if(year < 1927 || year == 1926 && month <= 12 && day <=24 || year > 2014
|| month > 12 || month < 1 || day > 31 || day < 1 || month == 2 && day > 28
|| month == 4 && day > 30 || month == 6 && day > 30 || month == 9 && day > 30
|| month == 11 && day > 30)
{
printf("エラー\n");
}
else
{
result = print_wareki(year,month,day);
}
return 0;
}
void print_wareki(int year,int month,int day)
{
int result;
if(year >= 1926 && year <= 1989)
{
if(year < 1989)
{
result = year-1925;
printf("昭和%d年%d月%d日です。\n",year,month,day);
}
else if(year == 1989)
{
result = year-1925;
printf("昭和%d年%d月%d日です。\n",year,month,day);
}
else if(year == 1989)
{
result = year-1988;
printf("平成%d年%d月%d日です。\n",year,month,day);
}
}
else if(year >= 1990)
{
result = year-1988;
printf("平成%d年%d月%d日です。\n",year,month,day);
}
}