c程序设计第四版谭浩强
编写一个函数days,实现第1题的计算。由主函数将年月日传递给days,计算出该日在本年中是第几天并将结果传回主函数输出。
第一题的内容:编写一个函数days,实现上面的计算。。由主函数将年月日传递给days,计算出该日在本年中是第几天并将结果传回主函数输出。
以下是此题的【c++源代码】,需要【c源代码】请点击进入
解法1【c源程序】
#include <stdio.h>
struct y_m_d
{ int year;
int month;
int day;
}date;
int main()
{ int days(struct y_m_d date1);
printf("input year,month,day:");
scanf("%d,%d,%d",&date.year,&date.month,&date.day);
printf("%d/%d is the %dth day in %d.\n",date.month,date.day,days(date),date.year);
}
int days(struct y_m_d date1)
{int sum;
switch(date1.month)
{case 1: sum=date1.day; break;
case 2: sum=date1.day+31; break;
case 3: sum=date1.day+59; break;
case 4: sum=date1.day+90; break;
case 5: sum=date1.day+120; break;
case 6: sum=date1.day+151; break;
case 7: sum=date1.day+181; break;
case 8: sum=date1.day+212; break;
case 9: sum=date1.day+243; break;
case 10: sum=date1.day+273; break;
case 11: sum=date1.day+304; break;
case 12: sum=date1.day+334; break;
}
if ((date1.year % 4 == 0 && date1.year % 100!=0|| date1.year % 400 == 0) && date1.month >=3)
sum+=1;
return(sum);
}
解法2【c源程序】
#include <stdio.h>
struct y_m_d
{int year;
int month;
int day;
} date;
int main()
{ int days(int year,int month,int day);
int days(int,int,int);
int day_sum;
printf("input year,month,day:");
scanf("%d,%d,%d",&date. year,&date.month,&date.day);
day_sum=days(date.year,date.month,date.day);
printf("%d / %d is the %dth day in %d.\n",date.month,date.day,day_sum,date.year);
}
int days(int year,int month,int day)
{int day_sum,i;
int day_tab[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
day_sum=0;
for (i=1;i<month;i++)
day_sum+=day_tab[i];
day_sum+=day;
if ((year%4==0 && year%100!=0 || year%4==0) && month>=3)
day_sum+=1;
return(day_sum);
}
本文链接:http://www.wb98.com/c/post/tanhaoqiang_9.2.html
本站文章搜索: