我正在用C语言为我的编程课程做一些中国十二生肖的作业,我不确定是否有一种方法可以用更少的行来写这个:
int main() {
int year;
printf("Enter your year of birth: \n");
scanf_s("%i", &year);
if (year % 12 == 0) {
return 0;
} else if (year % 12 == 1) {
return 1;
} else if (year % 12 == 2) {
return 2;
} else if (year % 12 == 3) {
return 3;
} else if (year % 12 == 4) {
return 4;
} else if (year % 12 == 5) {
return 5;
} else if (year % 12 == 6) {
return 6;
} else if (year % 12 == 7) {
return 7;
} else if (year % 12 == 8) {
return 8;
} else if (year % 12 == 9) {
return 9;
} else if (year % 12 == 10) {
return 10;
} else if (year % 12 == 11) {
return 11;
}
我想知道是否有办法优化这段代码。
2条答案
按热度按时间g6ll5ycj1#
您可以缩短函式,如下列程式码片段所示。
测试该输出将给出以下终端输出。
给予一下,看看它是否符合你的项目的精神。
ccrfmcuu2#
year % 12
将年份缩减到范围[-11... 11]。使用该范围作为起始点来获取数字[0...11]。参考:中国十二生肖
注:2022年2月1日至2023年1月21日是虎年(第3年)。OP的
year
可能需要偏移。