c语言输入年月日,算第几天?

c语言输入年月日,算第几天?要求:使用数组解决
不能使用C++
只用写关键步骤,或者说说思路,让我明白就行

我的思路是,建一个三位数组,使用strlen算总共有多少个元素。再除7就行
但是感觉这样好麻烦啊

日期比较容易算。星期几可以用下面的公式来计算:

(年份-1) + (年份-1)/4 - (年份-1)/100 + (年份-1)/400 +第几天

建立两个数组,一个是每月天数的数组,一个是星期几的数组。

程序如下:

#include <stdio.h>
void main()
{
int i,n=0,year,month,day,a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
char b[7][10]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};
scanf("%d/%d/%d",&year,&month,&day);
if((year%4==0&&year%100)||year%400==0) a[2]=29;
for(i=0;i<month;i++)
n+=a[i];n+=day;
printf("%d  %s",n,b[((year-1)+(year-1)/4-(year-1)/100+(year-1)/400+n)%7]);
}

追问

OK

温馨提示:答案为网友推荐,仅供参考
相似回答