c程序设计第四版谭浩强
定义一个结构体变量(包括年月日)。计算某日在一年中是第几天?(注意闰年问题)
c程序设计(第四版)学习辅导 谭浩强 编著
以下是此题的【c++源代码】,需要【c源代码】请点击进入
解法1【c源程序1】
#include <stdio.h>
struct
{ int year;
int month;
int day;
}date;
int main()
{int days;
printf("input year,month,day:");
scanf("%d,%d,%d",&date. year,&date.month,&date.day);
switch(date.month)
{ case 1: days=date.day; break;
case 2: days=date.day+31; break;
case 3: days=date.day+59; break;
case 4: days=date.day+90; break;
case 5: days=date.day+120; break;
case 6: days=date.day+151; break;
case 7: days=date.day+181; break;
case 8: days=date.day+212; break;
case 9: days=date.day+243; break;
case 10: days=date.day+273; break;
case 11: days=date.day+304; break;
case 12: days=date.day+334; break;
}
if ((date.year %4== 0 && date.year % 100 != 0
||date.year % 400 == 0) && date.month >=3) days+=1;
printf("%d/%d is the %dth day in %d.\n",date.month,date.day,days,date.year);
return 0;
}
解法2 【c源程序2】
#include <stdio.h>
struct
{ int year;
int month;
int day;
}date;
int main()
{int i,days;
int day_tab[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
printf("input year,month,day:");
scanf("%d,%d,%d",&date. year,&date.month,&date.day);
days=0;
for(i=1;i<date.month;i++)
days=days+day_tab[i];
days=days+date.day;
if((date.year%4==0 && date.year%100!=0 || date.year%400==0) && date.month>=3)
days=days+1;
printf("%d/%d is the %dth day in %d.\n",date.month,date.day,days,date.year);
return 0;
}
本文链接:http://www.wb98.com/c/post/tanhaoqiang_9.1.html
本站文章搜索: