楼上的算法有漏洞.
最后一步如果是润年,天数加一出错了.
假设是闰年,但是给的日期没有超过2.29,那就不需要加一.这步没考虑
楼上的算法有漏洞.
最后一步如果是润年,天数加一出错了.
假设是闰年,但是给的日期没有超过2.29,那就不需要加一.这步没考虑
2007-01-03 08:47
#include "stdio.h"
main ()
{
int year, month, day;
int total;
int leap;
printf ("enter year.month.day\n");
scanf ("%d.%d.%d.", &year, &month, &day);
switch (month)
{
case 1: total=0+day; break;
case 2: total=31+day; break;
case 3: total=59+day; break;
case 4: total=90+day; break;
case 5: total=120+day; break;
case 6: total=151+day; break;
case 7: total=181+day; break;
case 8: total=212+day; break;
case 9: total=243+day; break;
case 10: total=273+day; break;
case 11: total=304+day; break;
case 12: total=334+day; break;
}
leap=year%4==0&&year%100!=0||year%400==0;
if (leap&&month>2)
total++;
printf ("%d", total);
getch ();
2007-01-03 23:19
我也写了一个
#include <iostream>
using namespace std;
//判断是否是晕年
int yunian (int year )
{
if (year%4==0 && year%100!=0 || year%400==0)return 1;
else return 0;
}
void jisuan(int year ,int yue ,int day)
{
int str[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int i;
str[2]+=+yunian(year);
for (i=1;i<yue ;i++)
day+=str[i];
printf("It is the %d day of %d\n", day, year);
}
main()
{
int a, b, c, day;
printf("year=?\nyue=?\nday=?\n");
scanf("%d%d%d", &a, &b, &c);
jisuan(a, b, c);
system("PAUSE");
}

2007-01-04 09:36

#include <stdio.h>
int main ()
{
int i, j, m, n, year, month, day, number=0;
int s[12][31];
printf("year=");
scanf("%d", &year);
printf("month=");
scanf("%d", &month);
printf("day=");
scanf("%d", &day);
for(i=1; i<=12; i++)
{
for(j=1; j<=31; j++)
s[i][j]=1;
}
if(year%4==0)
{
if(year%100==0&&year%400!=0)
s[2][29]=s[2][30]=s[2][31]=s[4][31]=s[6][31]=s[9][31]=s[11][31]=0;
else if(year%400==0)
s[2][30]=s[2][31]=s[4][31]=s[6][31]=s[9][31]=s[11][31]=0;
else
s[2][30]=s[2][31]=s[4][31]=s[6][31]=s[9][31]=s[11][31]=0;
}
if(year%4!=0)
s[2][29]=s[2][30]=s[2][31]=s[4][31]=s[6][31]=s[9][31]=s[11][31]=0;
for(m=1; m<month; m++)
{
for(n=1; n<=31; n++)
number += s[m][n];
}
number += day;
printf("%d", number);
}
这是我写的。。。
比较麻烦。。。
但应该更容易看懂吧。。。
2007-01-04 10:18

2007-03-29 17:16