C语言 闰年判断

#include <stdio.h>

int main() {
    int year;
    printf("Please enter a year:\n");
    scanf("%d", &year);
    if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
        printf("%d is a leap year.\n", year);
    } else {
        printf("%d is not a leap year.\n", year);
    }
    return 0;
}

代码存在的问题:

       在代码实现中,没有对输入的年份进行边界判断,如果输入的是负数或者其他非法的年份,程序会输出错误的结果。可以加上对输入的年份的范围进行判断,比如只接受大于0的正整数年份。


修改后的代码:

#include <stdio.h>

int main() {
    int year;
    printf("Please enter a year (greater than 0):\n");
    scanf("%d", &year);
    if (year <= 0) {
        printf("Invalid input.\n");
        return 0;
    }
    if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
        printf("%d is a leap year.\n", year);
    } else {
        printf("%d is not a leap year.\n", year);
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_53083744/article/details/129736338
今日推荐