帮我看一下哪里错了。大概思路是先检验输入的日期的正确性然后把正确的日期代入公式算出星期几。
#include "stdio.h"
main()
{
int y,m,d,a,b;
b=0;
scanf("%d%d%d",&y,&m,&d);
if(m>12||m<0) {b=1 printf("month is error.\n")};
else {if(d<0) {b=1; printf("day is error.\n")};
else{switch(m)
{
case 1: if(d>32) {b=1 printf("day is error.\n")}; break;
case 2: if((y%4==0&&y%100!=0)||(y%400==0)) a==1;
else a==2;
if(a==1&&d>30) {b=1 printf("day is error.\n")}; break;
if(a==2&&d>29) {b=1 printf("day is error.\n")}; break;
case 3: if(d>32) {b=1 printf("day is error.\n")}; break;
case 4: if(d>31) {b=1 printf("day is error.\n")}; break;
case 5: if(d>32) {b=1 printf("day is error.\n")}; break;
case 6: if(d>31) {b=1 printf("day is error.\n")}; break;
case 7: if(d>32) {b=1 printf("day is error.\n")}; break;
case 8: if(d>32) {b=1 printf("day is error.\n")}; break;
case 9: if(d>31) {b=1 printf("day is error.\n")}; break;
case 10: if(d>32) {b=1 printf("day is error.\n")}; break;
case 11: if(d>31) {b=1 printf("day is error.\n")}; break;
case 12: if(d>32) {b=1 printf("day is error.\n")}; break;
}
}
if(m==1||m==2) {
m+=12;
y--;}
if(b=0) {int iWeek=(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7;
switch(iWeek)
{
case 0: printf("1\n"); break;
case 1: printf("2\n"); break;
case 2: printf("3\n"); break;
case 3: printf("4\n"); break;
case 4: printf("5\n"); break;
case 5: printf("6\n"); break;
case 6: printf("0\n"); break;
}
}
system("pause");
}
你好!
程序改了,错误很多,都是你粗心造成的,很多都是少了逗号多了分号;
代码发给你,你看看吧,注意后面的注释说明:
#include "stdio.h"少了一个大括号。。不用了谢谢
追答这么多错误,居然就说少了一个大括号,真聪明
补充一个错误,下面回答同理
case 3: if(d>32) {b=1 printf("day is error.\n")}; break;这一段代码if后面的条件全部大了1,限制值应该是31和30,除非你改成>=