目前主要分为三个专栏,后续还会添加:
感谢阅读!
初来乍到,如有错误请指出,感谢!
描述
牛牛的一周有七天,从周一到周日对应的英文是
1、星期一:Monday
2、星期二:Tuesday
3、星期三:Wednesday
4、星期四:Thursday
5、星期五:Friday
6、星期六:Saturday
7、星期日:Sunday
牛牛知道今天是星期几,请输出这天的英文
输入描述:
输入今天是星期几
输出描述:
输出对应的英文
思路 :
这题使用if else 语句判断也行
使用switch语句判断也行
我用的是switch语句来进行判断的
以下是AI给出的解题思路:
读取输入:首先,你需要读取用户输入的数字,这个数字代表星期的序号。
映射关系:在代码中定义一个映射关系,将输入的数字映射到对应的英文星期名称。例如,1对应"Monday",2对应"Tuesday",以此类推。
条件判断:根据输入的数字,使用条件语句(如if-else或者switch-case)来判断它对应的星期名称。
输出结果:根据条件判断的结果,输出对应的英文星期名称。
处理边界情况:确保程序能够处理超出范围的输入值,即输入的数字不在1到7之间时,给出适当的提示或默认值。
代码1:
使用switch语句来进行判断
# include <stdio.h>
int main ()
{
int input = 0;
scanf("%d",&input);
switch (input)
{
case 1:
printf("Monday");
break;
case 2:
printf("Tuesday");
break;
case 3:
printf("Wednesday");
break;
case 4:
printf("Thursday");
break;
case 5:
printf("Friday");
break;
case 6:
printf("Saturday");
break;
case 7:
printf("Sunday");
break;
default:
printf("输入错误\n");
}
return 0;
}
切记,千万不要忘记加break;
我就忘记了,题目提示出错......
代码2:
if...else 语句进行判断
#include <stdio.h>
int main()
{
int d;
scanf("%d",&d);
if(d==1)
printf("Monday");
if(d==2)
printf("Tuesday");
if(d==3)
printf("Wednesday");
if(d==4)
printf("Thursday");
if(d==5)
printf("Friday");
if(d==6)
printf("Saturday");
if(d==7)
printf("Sunday");
return 0; }
代码3:
比较高级点的。
用的二维数组来进行判断
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int main()
{
char whichDay[7][10] = {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"};
int day = 0;
scanf("%d", &day);
//合法性判断
if (day < 1 || day > 7)
{
printf("输入错误, 请输入数字1~7\n");
return 1;
}
printf("%s\n", whichDay[day - 1]);
return 0;
}
扩展:
switch语句:
以下来自:菜鸟教程 C switch 语句 | 菜鸟教程 (runoob.com)
switch 语句是一种有限制的控制流语句,它用于根据表达式的值执行不同的代码块。
一个 switch 语句允许测试一个变量等于多个值时的情况,每个值称为一个 case,且被测试的变量会对每个 switch case 进行检查。
语法
C 语言中 switch 语句的语法:
switch(expression){
case constant-expression :
statement(s);
break; /* 可选的 */
case constant-expression :
statement(s);
break; /* 可选的 */
/* 您可以有任意数量的 case 语句 */
default : /* 可选的 */
statement(s);
}
switch 语句说明:
- switch 后面的表达式的值将会与每个 case 后面的常量值进行比较,直到找到匹配的值或者执行到 default(如果存在)。
- 如果找到匹配的值,将执行相应 case 后面的代码块,然后跳出 switch 语句。
- 如果没有匹配的值,并且有 default,则执行 default 后面的代码块。
- 如果没有匹配的值,并且没有 default,则跳过整个 switch 语句直到结束。
switch 语句必须遵循下面的规则:
-
switch 表达式的类型: switch 语句中的表达式必须是整数类型(char、short、int或枚举),或者是能够隐式转换为整数类型的表达式。
-
case 标签的唯一性: 在 switch 语句中,每个 case 标签必须是唯一的,不能有重复的值。
-
默认情况的可选性: switch 语句中的 default 标签是可选的。如果没有匹配的 case 标签,则会执行 default 标签下的代码块(如果存在)。
-
case 标签中的常量值: case 标签中只能是常量值,不能是变量或表达式。
-
case 标签的顺序: switch 语句中的 case 标签的顺序并不重要,它们可以按照任意顺序编写。程序会按照 case 标签出现的顺序依次匹配。
-
break 语句的使用: 在每个 case 标签的代码块结束处通常需要使用 break 语句来终止 switch 语句的执行。如果没有 break 语句,程序将会继续执行下一个 case 标签中的代码,直到遇到 break 语句或 switch 语句结束。
-
switch 语句的嵌套: switch 语句可以嵌套在其他 switch 语句中,但是需要注意代码的可读性和复杂性。
-
case 标签和表达式的范围: switch 语句的 case 标签可以是整数常量表达式,但不能是浮点数或字符串。
实例:
#include <stdio.h>
int main ()
{
/* 局部变量定义 */
char grade = 'B';
switch(grade)
{
case 'A' :
printf("很棒!\n" );
break;
case 'B' :
case 'C' :
printf("做得好\n" );
break;
case 'D' :
printf("您通过了\n" );
break;
case 'F' :
printf("最好再试一下\n" );
break;
default :
printf("无效的成绩\n" );
}
printf("您的成绩是 %c\n", grade );
return 0;
}
当上面的代码被编译和执行时,它会产生下列结果:
做得好
您的成绩是 B
使用 switch 语句编程,根据输入的年份判断是否为闰年,根据输入的月份判断这月有多少天。
#include<stdio.h>
int main() {
int year, month, ex;
printf("请输入年份及月份(空格分隔):");
scanf("%d %d", &year, &month);
if(month < 1 || month > 12) {
printf("输入有误!!");
} else {
if((year%4 == 0 && year%100 != 0) || year%400 == 0) {
ex = 1;
printf("%d年为闰年。\n", year);
} else {
ex = 0;
printf("%d年不为闰年。\n", year);
}
switch(month) {
case 4: case 6: case 9: case 11: printf("%d月有%d天。", month, 30); break;
case 2: printf("%d月有%d天。", month, 27+ex); break;
default: printf("%d月有%d天。", month, 31);
}
}
}