该代码应计算calculate年。我还没吃完 包括所有计算此费用的案例,但无论它不是在每种情况下都涉及,而只是跳至默认值。我刚开始练习C 因此,在这里进行详细的说明确实很有帮助。
#include <stdio.h>
int main()
{
int year;
printf("Enter a year you wish to check is a leap year\n");
scanf(" %d", &year);
switch(year)
{
case 1: //does not go into this case
if(year%4 == 0)
{
printf("leap year\n");
}
break;
case 2: //does not go into this case
if(year%100 == 0 && year%400 == 0)
{
printf("leap year\n");
}
break;
default:
printf("not a leap year\n");
}
return 0;
}
答案 0 :(得分:3)
get ':category/:location', to: 'locations#action1'
get ':category/:location/:sublocation', to: 'locations#action2'
get ':category/:location/:sublocation/:subsublocation', to: 'locations#action3'
语句没有带编号的子句,例如“子句#1”和“子句#2”,而是针对文字值switch
和{{1 }}。您的意思可能是:
year
然后您可以在代码主体中使用该功能:
1
通过将其放入函数中,可以针对多种情况进行快速测试。您要确保1900年不是a年,2000年和2004年是2年,而2100年不是a年。
答案 1 :(得分:2)
似乎您对switch语句有点误解。这是您给出的示例:
switch(year)
{
case 1: //does not go into this case
if(year%4 == 0)
{
printf("leap year\n");
}
break;
case 2: //does not go into this case
if(year%100 == 0 && year%400 == 0)
{
printf("leap year\n");
}
break;
default:
printf("not a leap year\n");
}
这与使用if语句等效
if (year == 1)
{
if(year%4 == 0)
{
printf("leap year\n");
}
}
else if (year == 2)
{
if(year%100 == 0 && year%400 == 0)
{
printf("leap year\n");
}
}
else
{
printf("not a leap year\n");
}
每个“案例”实际上只是将年份与给定值进行比较。相反,我建议使用if语句检查是否是a年。
if(year%4 == 0)
{
printf("leap year\n");
}
else if(year%100 == 0 && year%400 == 0)
{
printf("leap year\n");
}
}
else
{
printf("not a leap year\n");
}
如果您想了解有关switch语句的更多信息,请参见以下资源: https://www.tutorialspoint.com/cprogramming/switch_statement_in_c.htm
答案 2 :(得分:1)
现在,您的代码正在检查输入1或2作为年份的用户。对于任何其他年份(例如,2018年),它将直接跳至default
标签。
我猜(但我会承认,我不确定),您想要更多类似的东西:
switch ( year % 4 ) {
case 0:
if (year % 100 == 0 && year % 400 != 0) {
printf("Not a leap year");
break;
}
default:
printf("leap year");
}
尽管使用switch
并不能带来很多好处,但它也可以是if
。
答案 3 :(得分:0)
#include <stdio.h>
int main()
{
int year;
printf("Enter a year you wish to check is a leap year\n");
scanf(" %d", &year);
switch (year % 4)
{
case 0:
if (year % 100 == 0)
{
printf("\"Century\" can't be leap year\n");
}
else
printf("leap year\n");
break;
case 3:
printf("Next year is a leap year.\n");
default:
printf("not a leap year\n");
break;
}
return 0;
}