#1
by pzym321 » 4年前
年月日を引数として、当年の1月1日から数えて何日目となるかを返す関数を作成せよ。なお、設問1で作成した閏年判定関数を利用し、2月の日数計算に利用せよ。関数のプロトタイプ宣言は以下の通りとする。
int count_day_of_year(int year, int month, int day);
上記を呼び出すmain関数も作成し動作を確認せよ。
作ったプログラムは以下に示す。
2020を入力すると0が出ちゃったのです、つまり閏年ではないと判定されました。
なぜでしょう???
変な所の修正お願いします
#include <stdio.h>
int is_leep_year(int year);
int count_day_of_year(int year, int month, int day);
int main(void)
{
int year,month,day,sumday,a;
printf("年を入力してください\n");
scanf("%d",&year);
printf("月を入力してください\n");
scanf("%d",&month);
printf("日を入力してください\n");
scanf("%d",&day);
a=is_leep_year(year);
if (a==1)
{
sumday=count_day_of_year(year,month,day);
}
else
{
sumday=(count_day_of_year(year,month,day)-1);
}
printf("当年の1月1日から数えて%d日目となる\n",sumday);
return 0;
}
int is_leep_year(int year)
{
int a;
{
if(((year%4==0)&&(year%100!=0))&&(year%400==0))
a=1;
else
a=0;
}
printf("%d\n",a);
return a;
}
int count_day_of_year(int year, int month, int day)
{
int sum;
switch(month){
case 1:
sum=0;
break;
case 2:
sum=31;
break;
case 3:
sum=59;
break;
case 4:
sum=90;
break;
case 5:
sum=120;
break;
case 6:
sum=151;
break;
case 7:
sum=181;
break;
case 8:
sum=212;
break;
case 9:
sum=243;
break;
case 10:
sum=273;
break;
case 11:
sum=304;
break;
case 12:
sum=334;
break;
default:
printf("error\n");
}
return sum+day;
}
年月日を引数として、当年の1月1日から数えて何日目となるかを返す関数を作成せよ。なお、設問1で作成した閏年判定関数を利用し、2月の日数計算に利用せよ。関数のプロトタイプ宣言は以下の通りとする。
int count_day_of_year(int year, int month, int day);
上記を呼び出すmain関数も作成し動作を確認せよ。
作ったプログラムは以下に示す。
2020を入力すると0が出ちゃったのです、つまり閏年ではないと判定されました。
なぜでしょう???
変な所の修正お願いします
#include <stdio.h>
int is_leep_year(int year);
int count_day_of_year(int year, int month, int day);
int main(void)
{
int year,month,day,sumday,a;
printf("年を入力してください\n");
scanf("%d",&year);
printf("月を入力してください\n");
scanf("%d",&month);
printf("日を入力してください\n");
scanf("%d",&day);
a=is_leep_year(year);
if (a==1)
{
sumday=count_day_of_year(year,month,day);
}
else
{
sumday=(count_day_of_year(year,month,day)-1);
}
printf("当年の1月1日から数えて%d日目となる\n",sumday);
return 0;
}
int is_leep_year(int year)
{
int a;
{
if(((year%4==0)&&(year%100!=0))&&(year%400==0))
a=1;
else
a=0;
}
printf("%d\n",a);
return a;
}
int count_day_of_year(int year, int month, int day)
{
int sum;
switch(month){
case 1:
sum=0;
break;
case 2:
sum=31;
break;
case 3:
sum=59;
break;
case 4:
sum=90;
break;
case 5:
sum=120;
break;
case 6:
sum=151;
break;
case 7:
sum=181;
break;
case 8:
sum=212;
break;
case 9:
sum=243;
break;
case 10:
sum=273;
break;
case 11:
sum=304;
break;
case 12:
sum=334;
break;
default:
printf("error\n");
}
return sum+day;
}