如果今天是星期三,后天就是星期五;如果今天是星期六,后天就是星期一。我们用数字1到7对应星期一到星期日。给定某一天,请你输出那天的“后天”是星期几。
输入格式:
输入第一行给出一个正整数D
(1 ≤ D
≤ 7),代表星期里的某一天。
输入样例:
3
输出样例:
5
以此题为例,我想到了能不能一个case后面跟多个值例如这样的写法:
#include<stdio.h>
int main()
{
int d;
scanf("%d", &d);
switch(d)
{
case 1||2||3||4||5:printf("%d", d+2);break;
case 6:printf("1");break;
case 7:printf("2");break;
}
return 0;
}
但运行结果和我预期的不一样,当输入1,6,7都能正常输出,而输入2,3,4,5时却什么都没输出(这个我不能理解,请教各位大佬),就像这样:
当然也有解决办法,就是利用case语句的穿透效果:
#include<stdio.h>
int main()
{
int d;
scanf("%d", &d);
switch(d)
{
case 1:
case 2:
case 3:
case 4:
case 5:printf("%d", d+2);break;
case 6:printf("1");break;
case 7:printf("2");break;
}
return 0;
}