C语言,根据输入的字母判断是星期几?
你输入了S后的回车还在缓冲区中,后来被读取到letter中了,而不是你输入的字母,所以才会出错,你在之前再加一个getchar就行了。还有你的第二个else if中不需要再读取字母了,直接判断就行了。下面是整理后的代码。我建议你直接读取一段作为字符串来判断比较方便,这样比较麻烦。
#include
void main()
{
printf("please enter the first letter of someday:\n");
char letter;
while ((letter = getchar()) != 'y') {
switch (letter) {
case 'S': {
printf("please enter the second letter:");
getchar();
if ((letter = getchar()) == 'a') {
printf("It is Saturday!\n");
} else if (letter == 'u') {
printf("It is Sunday!\n");
} else {
printf("error\n");
}
break;
}
case 'M':
printf("It is Monday!\n");
break;
case 'T': {
printf("please enter the second letter:");
getchar();
if ((letter = getchar()) == 'h') {
printf("It is Tuesday!\n");
} else if (letter == 'u') {
printf("It is Thursday!\n");
}
break;
}
case 'F':
printf("It is Friday!\n");
break;
case 'W':
printf("It is Wednesday!\n");
break;
}
}
}
c语言,怎么算某年某月某日是星期几啊?
week=6;//2000年元旦是星期六//每年365天,即每年星期数加1;week += year-2000;if(year<2000){for(i=year;i<2000;i--){if(( y%4==0 && y%100!=0) || y%400==0)) week--;}}else{ for(i=2000;i<year;i++){if(( y%4==0 && y%100!=0) || y%400==0) ) week++;}}for(i=0;i<month;i++)week += month_day[i];if(if(( y%4==0 && y%100!=0) || y%400==0) month>=2) week++;week += day;week = week%7;//0 =星期日//以上计算,在2000分界处不完整,自己改进,思路如此,如果想省掉,可手算-32768年的星期,然后只算算加法,但要在中间%7一次,防止数据越界。