【发布时间】:2015-09-18 12:39:03
【问题描述】:
我正在编写一个涉及检查日期有效性的程序。我已经为有 31 天的月份设置了条件,我已经为有 30 天的月份设置了条件。因为闰年有问题,所以我省略了 2 月。
当我运行程序时,它能够在屏幕上打印所有有效日期的“SUCCESS”。但是,当我尝试输入无效日期时,程序无法在屏幕上写入“FAILURE”,正如我设置的那样[至少我相信]。
这里的代码有什么问题?
#include <stdio.h>
int main ()
{
int month = 1;
int day = 32;
if (month == 1 || month == 3 || month == 5 || month == 7 || month == 8
|| month == 10 || month == 12)
{
if (0 < day && day < 32)
{
return printf("%s","SUCCESS");
}
}
else if (month == 4 || month == 6 || month == 9 || month == 11)
{
if (0 < day && day < 31 )
{
return printf("%s","SUCCESS");
}
}
else
{
return printf("%s","FAILURE");
}
return 1;
}
【问题讨论】:
-
解决此问题的另一种方法是从
int success = 0;开始,并将return printf("%s","SUCCESS");替换为success = 1;。并删除else{}。然后就在return 1;之前,你可以这样做:if ( success ) printf("SUCCESS"); else printf("FAILURE");
标签: c