鱼C论坛

 找回密码
 立即注册
查看: 2641|回复: 5

[已解决]大佬哪出问题了?

[复制链接]
发表于 2020-9-15 20:25:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
/*这是一个判断闰年的程序*/
/*leap 用来判断*/
#include<stdio.h>
int main()
{
        int year,leap;
        scanf("%d",&year);
        if(year%4==0)
        {
                if(year%100==0)
                {
               
                  if(year%400==0)
                    {   
                        1==leap;
                    }
                  else
                    {
                        0==leap;
                    }
            }
            else
            {
                    1==leap;
                }
        }
        else
        {
                0==leap;
        }
        switch(leap)
        case 1:printf("is year\n");break;
        case 0:printf("is not year\n");break;
       
       
}
最佳答案
2020-9-15 20:45:03
本帖最后由 sunrise085 于 2020-9-15 20:46 编辑

你对赋值运算符“=”和相等运算符“==”有误解吧?
switch后面的语句,为什么没有括起来

  1. /*这是一个判断闰年的程序*/
  2. /*leap 用来判断*/
  3. #include<stdio.h>
  4. int main()
  5. {
  6.         int year,leap;
  7.         scanf("%d",&year);
  8.         if(year%4==0)
  9.         {
  10.                 if(year%100==0)
  11.                 {
  12.                
  13.                   if(year%400==0)
  14.                     {   
  15.                         leap=1;//这几个赋值是什么鬼?你写的是相等比较运算符
  16.                     }
  17.                   else
  18.                     {
  19.                         leap=0;
  20.                     }
  21.             }
  22.             else
  23.             {
  24.                     leap=1;
  25.                 }
  26.         }
  27.         else
  28.         {
  29.                 leap=0;
  30.         }
  31.         switch(leap){//这个switch为什么不用大括号括起来?
  32.         case 1:printf("is year\n");break;
  33.         case 0:printf("is not year\n");break;}
  34.         
  35.         
  36. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-9-15 20:45:03 | 显示全部楼层    本楼为最佳答案   
本帖最后由 sunrise085 于 2020-9-15 20:46 编辑

你对赋值运算符“=”和相等运算符“==”有误解吧?
switch后面的语句,为什么没有括起来

  1. /*这是一个判断闰年的程序*/
  2. /*leap 用来判断*/
  3. #include<stdio.h>
  4. int main()
  5. {
  6.         int year,leap;
  7.         scanf("%d",&year);
  8.         if(year%4==0)
  9.         {
  10.                 if(year%100==0)
  11.                 {
  12.                
  13.                   if(year%400==0)
  14.                     {   
  15.                         leap=1;//这几个赋值是什么鬼?你写的是相等比较运算符
  16.                     }
  17.                   else
  18.                     {
  19.                         leap=0;
  20.                     }
  21.             }
  22.             else
  23.             {
  24.                     leap=1;
  25.                 }
  26.         }
  27.         else
  28.         {
  29.                 leap=0;
  30.         }
  31.         switch(leap){//这个switch为什么不用大括号括起来?
  32.         case 1:printf("is year\n");break;
  33.         case 0:printf("is not year\n");break;}
  34.         
  35.         
  36. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-15 21:31:36 | 显示全部楼层
sunrise085 发表于 2020-9-15 20:45
你对赋值运算符“=”和相等运算符“==”有误解吧?
switch后面的语句,为什么没有括起来

看不出来他程序的逻辑,闰年的条件是:year % 4 == 0 && year % 100 != 0) || year % 400 == 0,你帮他改改
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-15 21:40:42 | 显示全部楼层
风过无痕1989 发表于 2020-9-15 21:31
看不出来他程序的逻辑,闰年的条件是:year % 4 == 0 && year % 100 != 0) || year % 400 == 0,你帮他改 ...

逻辑没问题,就是乱了点。
十几行的代码,他写了三十多行
  1. #include<stdio.h>
  2. int main()
  3. {
  4.     int year,leap;
  5.     scanf("%d",&year);
  6.     if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
  7.         leap=1;
  8.     else
  9.         leap=0;
  10.     switch(leap){
  11.         case 1:printf("is year\n");break;
  12.         case 0:printf("is not year\n");break;
  13.     }
  14.     return 0;
  15. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-15 22:39:55 | 显示全部楼层
sunrise085 发表于 2020-9-15 21:40
逻辑没问题,就是乱了点。
十几行的代码,他写了三十多行

这个题几天前我在其他论坛回复过,看到你在回复中说“这几个赋值是什么鬼?”,所以,就将闰年的条件这个非编程范畴的东东发了出来,想帮你节省一点点时间,希望你不要介意才好
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-15 23:38:29 | 显示全部楼层
  1. #include <stdio.h>
  2. int main(void)
  3. {
  4.         int year                                                                          ;
  5.         printf("Enter a year :")                                                         ;
  6.         scanf("%d" , & year)                                                              ;
  7.         if(! (year % 4) && (year % 100) || ! (year % 400)) printf("it's a leap year !\n") ;
  8.         else printf("it isn't a leap year !\n")                                           ;
  9. }
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-28 02:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表