1. 问题
请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。
2. 实现思路
- 思路一:嵌套if-else语句实现
- 首先接收用户输入的第一个字母,使用
if-else
语句进行判断。如果输入的是M
,则直接判断为星期一(Monday);如果是T
,由于星期二(Tuesday)和星期四(Thursday)首字母都是T
,所以需要再次提示用户输入第二个字母,根据第二个字母进一步判断是星期二还是星期四,比如第二个字母是u
则为星期二,是h
则为星期四;同理,若输入的是W
,则为星期三(Wednesday),若输入的是F
,则为星期五(Friday),若输入的是S
,因为星期六(Saturday)和星期日(Sunday)首字母都是S
,同样需要再输入第二个字母来区分,比如第二个字母是a
则为星期六,是u
则为星期日。
- 首先接收用户输入的第一个字母,使用
- 思路二:
switch
语句结合if
语句实现- 先接收用户输入的第一个字母,用
switch
语句对其进行分类判断。当输入的字母为M
、W
、F
时,可以直接确定对应的星期几。而对于输入T
或S
的情况,由于存在两种可能的星期与之对应,所以在相应的case
分支里,再提示用户输入第二个字母,然后通过if
语句根据第二个字母来准确判断到底是哪个具体的星期。
- 先接收用户输入的第一个字母,用
3. 实例代码
实现方式一:嵌套if-else语句实现
#include <stdio.h>
#include <ctype.h>
int main() {
char firstLetter;
char secondLetter;
printf("请输入星期几的第一个字母(大写):");
scanf(" %c", &firstLetter);
firstLetter = toupper(firstLetter);
if (firstLetter == 'M') {
printf("是星期一(Monday)。\n");
} else if (firstLetter == 'T') {
printf("请输入第二个字母(大写):");
scanf(" %c", &secondLetter);
secondLetter = toupper(secondLetter);
if (secondLetter == 'U') {
printf("是星期二(Tuesday)。\n");
} else if (secondLetter == 'H') {
printf("是星期四(Thursday)。\n");
} else {
printf("输入的字母不符合要求。\n");
}
} else if (firstLetter == 'W') {
printf("是星期三(Wednesday)。\n");
} else if (firstLetter == 'F') {
printf("是星期五(Friday)。\n");
} else if (firstLetter == 'S') {
printf("请输入第二个字母(大写):");
scanf(" %c", &secondLetter);
secondLetter = toupper(secondLetter);
if (secondLetter == 'A') {
printf("是星期六(Saturday)。\n");
} else if (secondLetter == 'U') {
printf("是星期日(Sunday)。\n");
} else {
printf("输入的字母不符合要求。\n");
}
} else {
printf("输入的字母不符合要求。\n");
}
return 0;
}
实现方式二:switch
语句结合if
语句实现
#include <stdio.h>
#include <ctype.h>
int main() {
char firstLetter;
char secondLetter;
printf("请输入星期几的第一个字母(大写):");
scanf(" %c", &firstLetter);
firstLetter = toupper(firstLetter);
switch (firstLetter) {
case 'M':
printf("是星期一(Monday)。\n");
break;
case 'T':
printf("请输入第二个字母(大写):");
scanf(" %c", &secondLetter);
secondLetter = toupper(secondLetter);
if (secondLetter == 'U') {
printf("是星期二(Tuesday)。\n");
} else if (secondLetter == 'H') {
printf("是星期四(Thursday)。\n");
} else {
printf("输入的字母不符合要求。\n");
}
break;
case 'W':
printf("是星期三(Wednesday)。\n");
break;
case 'F':
printf("是星期五(Friday)。\n");
break;
case 'S':
printf("请输入第二个字母(大写):");
scanf(" %c", &secondLetter);
secondLetter = toupper(secondLetter);
if (secondLetter == 'A') {
printf("是星期六(Saturday)。\n");
} else if (secondLetter == 'U') {
printf("是星期日(Sunday)。\n");
} else {
printf("输入的字母不符合要求。\n");
}
break;
default:
printf("输入的字母不符合要求。\n");
}
return 0;
}
4. 输出结果