关于if else的使用问题

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()
{
int year, leap;
printf("请输入年份:");
scanf("%d", &year);
if (year % 4 == 0 && year % 100 != 0)
{
leap = 1;
}
else if (year % 400 == 0)
{
leap = 1;
}
else
{
leap = 0;
}
if (leap = 1)
{
printf("%d 是闰年. \n ", year);
}
else
{
printf(" % d 不是闰年. \n ",year);
}

return 0;
}
家人们,到底是哪里出错了,求解

if (leap = 1)
改为
if (leap == 1)
==才是判断相等,=是赋值

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

int main()
{
    int year, leap;
    printf("请输入年份:");
    scanf("%d", &year);
    if (year % 4 == 0 && year % 100 != 0)
    {
        leap = 1;
    }
    else if (year % 400 == 0)
    {
        leap = 1;
    }
    else
    {
        leap = 0;
    }
    // if (leap = 1)
    if (leap == 1)  //改成==, 判断是否相等是两个等号 ==, 一个=是赋值
    {
        printf("%d 是闰年. \n", year);
    }
    else
    {
        // printf(" % d 不是闰年. \n ", year);
        printf("%d 不是闰年. \n", year);  // % 和 d 之间不能有空格
    }

    return 0;
}

img

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632