1问题描述
输入年月日,输出是该年第几天
2分析
a.输入年,判断是不是闰年;
b.该年的第几天=这一年这一月前面所有的月数之和+这个月的天数
3实现
#include <stdio.h>
int judge(int y)
{
if(y%400==0||(y%4==0&&y%100!=0))
{
return 1;
}
else
return 0;
}
int sum(int s,int m,int d)
{ int sum1=0,sum2=0;
int days1[12];
int days2[12];
printf("please input leap year for months:\n");
for(int i=0;i<12;i++)
{
scanf("%d",&days1[i]);
}
printf("please input usual year for months;\n");
for(int i=0;i<12;i++)
{
scanf("%d",&days2[i]);
}
if(s==1)
for(int i=0;i<m-1;i++)
{
sum1+=days1[i];
return (sum1+d);
}
else
{
for(int i=0;i<m-1;i++)
sum2+=days2[i];
return (sum2+d);
}
}
int main()
{
int year,month,day;
int result;
int days_sum;
printf(" please input computation year and month and day:\n");
scanf("%d%*c%d%*c%d",&year,&month,&day);
result=judge(year);
days_sum=sum(result,month,day);
printf("this is %d years for %d days\n",year,days_sum);
}
4心得
写代码时尽量往子函数写,主函数越简单越好,输入输出可以写在子函数,不用纠结传参问题