#include<stdio.h>
main()
{
int n,y,r,m,s,t=0,x;
scanf("%d%d%d",&n,&y,&r);
if(y=1) t=r;
if(y=2) t=31+r;
if(y>2)
{ t=t+31;
if((n%4==0)&&(n%100!=0)||(n%400==0))
{ t=t+29+r; }
else t=t+28+r;
for(s=3;s<y;s++)
{
if((s<8&&s%2==1)||(s>7&&s%2==0)) t=t+31;
else t=t+30;
}
}
if(n>2000)
{
for(s=2000;s<n;s++)
{
if((s%4==0)&&(s%100!=0)||(s%400==0)) t=t+366;
else t=t+365;
}
x=(t-2)%7;
}
if(n<1999)
{
for(s=1999;s>n;s--)
{
if((s%4==0)&&(s%100!=0)||(s%400==0)) t=t+366;
else t=t+365;
}
if((n%4==0)&&(n%100!=0)||(n%400==0))
t=(t>366)?t-366:366-t;
else t=(t>365)?t-365:365-t;
x=7-(t+2)%7;
}
if(n=1999) {t=365-t; x=7-(t+2)%7;}
if(n=2000)
{
if(t>=2) x=(t-2)%7;
else x=(2-t)%2;
}
printf("%d",x);
getch();
}
这样做出来这么不对?...请指正、、
能给个简单的吗? 不能用数组一一列出。。....
C语言;输入任意年月日,得出周几?
答案:2 悬赏:70 手机版
解决时间 2021-05-03 08:56
- 提问者网友:我没有何以琛的痴心不悔
- 2021-05-02 16:32
最佳答案
- 五星知识达人网友:底特律间谍
- 2021-05-02 17:44
#include "stdio.h"
main ()
{
int y,m,d;
long int i,sum=0;
printf ("输入年月日:\n");
scanf ("%d%d%d",&y,&m,&d);
for (i=1;i<y;i++)
if (i%4==0&&i%100!=0 || i%400==0)
sum+=366;
else
sum+=365;
switch (m) {
case 12 : sum+=30;
case 11 : sum+=31;
case 10 : sum+=30;
case 9 : sum+=31;
case 8 : sum+=31;
case 7 : sum+=30;
case 6 : sum+=31;
case 5 : sum+=30;
case 4 : sum+=31;
case 3 : if (y%4==0&&y%100!=0||y%400==0)
sum+=29;
else sum+=28;
case 2 : sum+=31;
default : sum+=0;
}
sum+=d-1;
switch (sum%7) {
case 0 : printf ("1");break;
case 1 : printf ("2");break;
case 2 : printf ("3");break;
case 3 : printf ("4");break;
case 4 : printf ("5");break;
case 5 : printf ("6");break;
case 6 : printf ("7");break;
}
}
main ()
{
int y,m,d;
long int i,sum=0;
printf ("输入年月日:\n");
scanf ("%d%d%d",&y,&m,&d);
for (i=1;i<y;i++)
if (i%4==0&&i%100!=0 || i%400==0)
sum+=366;
else
sum+=365;
switch (m) {
case 12 : sum+=30;
case 11 : sum+=31;
case 10 : sum+=30;
case 9 : sum+=31;
case 8 : sum+=31;
case 7 : sum+=30;
case 6 : sum+=31;
case 5 : sum+=30;
case 4 : sum+=31;
case 3 : if (y%4==0&&y%100!=0||y%400==0)
sum+=29;
else sum+=28;
case 2 : sum+=31;
default : sum+=0;
}
sum+=d-1;
switch (sum%7) {
case 0 : printf ("1");break;
case 1 : printf ("2");break;
case 2 : printf ("3");break;
case 3 : printf ("4");break;
case 4 : printf ("5");break;
case 5 : printf ("6");break;
case 6 : printf ("7");break;
}
}
全部回答
- 1楼网友:不如潦草
- 2021-05-02 18:17
*********您好!Yadie.23很高兴能为你解答。********* +++++++++++++++++++++++++++++++++++++++++++++++++
0年0月0日星期几?告诉我这个,估计我就会有很简单的代码出来了。。
+++++++++++++++++++++++++++++++++++++++++++++++++ You can have a try,maybe my answer useful to you. 如满意,Yadie.23十分感谢您的采纳。*^-^*
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯