大白兔奶糖12138 发表于 2021-11-12 14:33:01

哪里错了

题目描述
写一程序判断某一年是否是闰年。

输入要求
输入一个整数表示年份

输出要求
判断该年份是否为闰年,如果不是就输出no ,是就输出yes

输入样例
2000

输出样例
yes


提示
判断闰年的条件是:能被4整除但不能被100整除,或者能被400整除。
#include <stdio.h>
int main()
{
int a,b,c,d;
scanf("%d",&a);
b=a%4;
c=a%100;
d=a%400;
if(b=0&&c!=0)
printf("yes\n");
else if(d=0)
printf("yes\n");
else if(c>0)
printf("no\n");
return 0;
}

hrpzcf 发表于 2021-11-12 14:40:55

判断是否相等要用两个等号
#include <stdio.h>

int main() {
    int a, b, c, d;
    scanf("%d", &a);
    b = a % 4;
    c = a % 100;
    d = a % 400;
    if (b == 0 && c != 0)
      printf("yes\n");
    else if (d == 0)
      printf("yes\n");
    else if (c > 0)
      printf("no\n");
    return 0;
}

傻眼貓咪 发表于 2021-11-12 21:03:20

感谢让我复习习题#include <stdio.h>

int main()
{
    int year;
    scanf("%d", &year);
    printf(!(year%4) && (!(year%400) || year%100) ? "YES" : "NO");
    return 0;
}

傻眼貓咪 发表于 2021-11-12 21:18:40

从图中可以发现,可以除整 400 的数字肯定可以除整 100,可以除整 100 的数字肯定可以除整 4
理论上如图,A 包着 B 包着 C(设 A: 除整 4,B: 除整 100,C: 除整 400)
而不要的只是除整 100 的部分

注:这里有条件优先级,要除整 4 > 要除整 400 > 不要除整 100,意思就是就算能除整 100,只要也能除整 400 都算是闰年(因为能除整 400 条件 比 不能除整 100 优先)
页: [1]
查看完整版本: 哪里错了