大家帮我看看这个怎么实现?
编一个C程序,输入几月几日,然后看这一天是一年中的第几天
[解决办法]
网上找个万年历的代码,在此基础上,添加一个计算一年中第几天的程序即可
[解决办法]
不要看是否为闰年?
[解决办法]
穷举。硬编码一个12*31的数组。
[解决办法]
既然没要求,那就假设这一年是闰年吧
绝对好用的一个程序.
除了...
#include <stdio.h>
void main()
{
int month,day,num=0;
printf( "input the month\n ");
scanf( "%d ",&month);
printf( "input the day\n ");
scanf( "%d ",&day);
switch(month)
{
case 1:
break;
case 2:
num=31;
break;
case 3:
num=31+28;
break;
case 4:
num=31+28+31;
break;
case 5:
num=31+28+31+30;
break;
case 6:
num=31+28+31+30+31;
break;
case 7:
num=31+28+31+30+31+30;
break;
case 8:
num=31+28+31+30+31+30+31;
break;
case 9:
num=31+28+31+30+31+30+31+31;
break;
case 10:
num=31+28+31+30+31+30+31+31+30;
break;
case 11:
num=31+28+31+30+31+30+31+31+30+31;
break;
case 12:
num=31+28+31+30+31+30+31+31+30+31+30;
break;
}
num=num+day;
printf( "this day is the %dth day in this year\n ",num);
}
[解决办法]
日历 入某年某月某日,算年下的天
[思路]
1.以量(f)判是否年,而得出年所有天(yf)。
2.根入的月份(m) ,得出之前所度的所有月的天之和(ml)。
3.由全年天(yf)减去之前所有月份天之和(ml),再减去前月份所度的天即日期(d),即可得出年剩天。
需要定和使用的量:
y,m,d--年,月,日
i----循句 for 要用到的量
yf,ml--全年天,月份之前所有已度的月份的天之和
x----剩天,即所求的最果
main()
{
int y,m,d;
int f,i,yf,ml,x;
printf( "y,m,d= ");
scanf( "%d%d%d ",&y,&m,&d);
f= ( (y%4==0) && (y%100!=0) ) || (y%400==0);
yf=365+f; /* 一年的天 */
/* 用 for句 求除前月外 已度的所有月份的累天 */
ml=0;
for (i=1; i <=m-1; i++)
{
if (i <=7 && i%2!=0)
ml+=31;
else if (i <=7 && i%2==0 && i!=2)
ml+=30;
else if (i==2)
ml+=28+f;
else if (i> 7 && i%2!=0)
ml+=30;
else
ml+=31;
}
/* 剩天=全年天-已所有月份的累天-前月日期 */
x=yf-ml-d;
printf( "%d ",x);
}
[解决办法]
好像求反了,
楼主再做一个差值就可以了 ~
[解决办法]
我用数组写了一个看看行不行,
#include <stdio.h>
main()
{
int y,m,d,n,leap;
static int day_tab[][13]={
{0,31,28,31,30,31,30,31,31,30,31,30,31},
{0,31,29,31,30,31,30,31,31,30,31,30,31}};
printf( "Input:year=? month=? day=?\n ");
scanf( "%d%d%d ",&year,&month,&day);
leap=year%4==0&&year%100!=0||year%400==0;
for(n=1;n <=month;n++)
day+=day_tab[leap][n];
printf( "It is %d day\n ",day);
return 0;
}