中易网

2000年一月一日是星期二,输入2000年的某月某日,输出是星期几?这个程序用c语言怎么写????

答案:3  悬赏:10  
解决时间 2021-11-13 21:50
2000年一月一日是星期二,输入2000年的某月某日,输出是星期几?这个程序用c语言怎么写????
最佳答案
#include<stdio.h>

void main()
{
int i,n=0,month,day;
int month_day[]={31,29,31,30,31,30,31,31,30,31,30,31};
char str[7][10]={"星期天","星期一","星期二","星期三","星期四","星期五","星期六"};
printf("请输入月、日:");
scanf("%d%d",&month,&day);
for(i=1;i<month;i++)
n=n+month_day[i-1];
n=n+day;
n=(n+1)%7;
printf("2000年%d月%d日是%s\n",month,day,str[n]);
}
全部回答
#include <stdio.h> void main () { int y,m,d,c,s,w; printf("请输入8位年月日,以空格隔开:"); scanf("%d%d%d",&y,&m,&d); if (m==1) c=d; else if (m==2) c=31+d; else if (m==3) c=31+28+d; else if (m==4) c=31+28+31+d; else if (m==5) c=31+28+31+30+d; else if (m==6) c=31+28+31+30+31+d; else if (m==7) c=31+28+31+30+31+30+d; else if (m==8) c=31+28+31+30+31+30+31+d; else if (m==9) c=31+28+31+30+31+30+31+31+d; else if (m==10) c=31+28+31+30+31+30+31+31+30+d; else if (m==11) c=31+28+31+30+31+30+31+31+30+31+d; else if (m==12) c=31+28+31+30+31+30+31+31+30+31+30+d; if (m>2) {if (y%100==0) {if (y%400==0) c=c+1;} else if (y%4==0) c=c+1;} s=(y-1)*365+(y-1)/4-(y-1)/100+(y-1)/400+c; w=s%7; switch (w) { case 0: printf("星期日");break; case 1: printf("星期一");break; case 2: printf("星期二");break; case 3: printf("星期三");break; case 4: printf("星期四");break; case 5: printf("星期五");break; case 6: printf("星期六");break; printf("\n"); } }
#include #define size 31 void inputcheck(int,int,int); int leayear(int); main() { int year,month,day,d1,result,sum=0; scanf("%d%d%d",&year,&month,&day); inputcheck(year,month,day); for(;year>1; year--) { if((year%4==0 && year%100!=0)||(year%400==0)) sum+=366; else sum+=365; } d1=leayear(month); if((year%4==0 && year%100!=0) || (year%400==0)) { result=(sum+d1+day)%7;} else { if(month>2) result=(sum+d1+day-1)%7; else result=(sum+d1+day)%7; } switch(result) { case 1:printf("monday\n");break; case 2:printf("tuesday\n");break; case 3:printf("wedensday\n");break; case 4:printf("thurfay\n");break; case 5:printf("friday\n");break; case 6:printf("saturday\n");break; case 7:printf("sunday\n");break; } return 0; } int leayear(int m) { int t=0; for(; m>1;m--) { switch(m) { case 2: t+=29; break; case 4: case 6: case 9: case 11: t+=30; break; case 3: case 5: case 7: case 8: case 10: case 12: t+=31;break; } } return t; } void inputcheck(int year,int month,int day) { if(year<0) printf("input is wrong!\n"); else { switch(month) { case 2: if(day>28 && (!((year%4==0 && year%100!=0) || (year%400==0)))) printf("input is wrong!\n"); if(day>29 && ((year%4==0 && year%100!=0) || (year%400==0))) printf("input is wrong!\n");break; case 4: case 6: case 9: case 11: if(day>30) printf("input is wrong!\n");break; case 1: case 3: case 5: case 7: case 8: case 10: case 12: if(day>31) printf("input is wrong!\n"); } } } 感觉应该加上判断输入数据是否合格的函数,即便没这个要求,我用测试数据1900 1 1试了试,我的结果是星期一,你的错误你来找吧
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
我把蛋蛋给杀了怎么办
阳泉市国土资源勘测队地址有知道的么?有点事
三星I8558双卡双待,在SIM管理器中选择联通卡
成都市翡翠城2期邮政编码
k8356的10号车厢的9号座位是靠窗的座位吗
我信用社的存折弄丢了,不记得卡号,补办需要
文竹和红掌哪个适合送老师
一套房子总价为32万,首付款13万,请问律师费收
梦见摘长南瓜是什么意思?好不好呢?
笔记本亮度固定怎么设置?
床头斜对卧室门可以吗?
谁知道蜈蚣草水草怎么样
卉玲珑美容养生会所地址好找么,我有些事要过
阳泉市国土资源局办公地址在什么地方,我要处
进退无途的意思?成语怎么解释?
推荐资讯
求问料理机怎么做奶昔
新君威2.0—北京哪家4s店可以试驾新君威2.0
阿桑娜、a+、a02三者之间是什么关系?领口和侧
爱已远,情已逝,心已死却含笑饮鸠
青岛市地方税务局四方分局办公地址在什么地方
室内火灾中,可燃物表面全部卷入燃烧的瞬变状
请问下电容麦需要话放吗
武汉保利香槟国际二手房楼盘情况有人知道吗
房屋共有协议如何写?
海宁市许村供电营业厅办公地址在什么地方,我
谁能介绍一些耳机收纳法?
哪位大神知道头戴式耳机的正确戴法?
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?