【输入】 一行,3个以空格分隔的整数 y、m、d,分别为年、月、日,满足1900 ≤ y ≤ 9999,且是一个合法日期
【输出】 一行,表示星期的英文字符串,周日到周六分别为 Sunday、Monday、Tuesday、Wednesday、Thursday、Friday、Saturday
【样例输入】 2019 1 4
【样例输出】 Friday
辛苦说下大致思路以及代码。
C语言:(循环,数组) 已知1900年1月1日是星期一,求y年m月d日是星期几?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
关注 #include<stdio.h> int main() { int y,m,d,n; int a[13],i,sum1,sum2,sum; scanf("%d%d%d",&y,&m,&d); sum1=0;sum2=d;sum=0; for(i=1900;i<y;i++) { if(i%4==0&&i%100!=0||i%400==0) n=366; else n=365; sum1=sum1+n; //每年天数和 } if(y%4==0&&y%100!=0||y%400==0) a[2]=29; else a[2]=28; for(i=1;i<=12;i++) if(i==1||i==3||i==5||i==7||i==8||i==10||i==12) a[i]=31; else if(i==4||i==6||i==9||i==11) a[i]=30; for(i=1;i<m;i++) //每月天数和 sum2=sum2+a[i]; sum=sum1+sum2; switch(sum%7) { case 0:printf("Sunday\n");break; case 1:printf("Monday\n");break; case 2:printf("Tuesday\n");break; case 3:printf("Wednesday\n");break; case 4:printf("Thusday\n");break; case 5:printf("Friday\n");break; case 6:printf("Saturday\n");break; default:break; } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决评论 打赏 举报无用 1
悬赏问题
- ¥15 oracle集群安装出bug
- ¥15 关于#python#的问题:自动化测试
- ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题
- ¥15 教务系统账号被盗号如何追溯设备
- ¥20 delta降尺度方法,未来数据怎么降尺度
- ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
- ¥15 再不同版本的系统上,TCP传输速度不一致
- ¥15 高德地图点聚合中Marker的位置无法实时更新
- ¥15 DIFY API Endpoint 问题。
- ¥20 sub地址DHCP问题