小腥腥 发表于 2020-9-15 20:25:18

大佬哪出问题了?

/*这是一个判断闰年的程序*/
/*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;
       
       
}

sunrise085 发表于 2020-9-15 20:45:03

本帖最后由 sunrise085 于 2020-9-15 20:46 编辑

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

/*这是一个判断闰年的程序*/
/*leap 用来判断*/
#include<stdio.h>
int main()
{
      int year,leap;
      scanf("%d",&year);
      if(year%4==0)
      {
                if(year%100==0)
                {
               
                  if(year%400==0)
                  {   
                        leap=1;//这几个赋值是什么鬼?你写的是相等比较运算符
                  }
                  else
                  {
                        leap=0;
                  }
            }
            else
            {
                  leap=1;
                }
      }
      else
      {
                leap=0;
      }
      switch(leap){//这个switch为什么不用大括号括起来?
      case 1:printf("is year\n");break;
      case 0:printf("is not year\n");break;}
      
      
}

风过无痕1989 发表于 2020-9-15 21:31:36

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

看不出来他程序的逻辑,闰年的条件是:year % 4 == 0 && year % 100 != 0) || year % 400 == 0,你帮他改改

sunrise085 发表于 2020-9-15 21:40:42

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

逻辑没问题,就是乱了点。
十几行的代码,他写了三十多行
#include<stdio.h>
int main()
{
    int year,leap;
    scanf("%d",&year);
    if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
      leap=1;
    else
      leap=0;
    switch(leap){
      case 1:printf("is year\n");break;
      case 0:printf("is not year\n");break;
    }
    return 0;
}

风过无痕1989 发表于 2020-9-15 22:39:55

sunrise085 发表于 2020-9-15 21:40
逻辑没问题,就是乱了点。
十几行的代码,他写了三十多行

这个题几天前我在其他论坛回复过,看到你在回复中说“这几个赋值是什么鬼?”,所以,就将闰年的条件这个非编程范畴的东东发了出来,想帮你节省一点点时间,希望你不要介意才好

jackz007 发表于 2020-9-15 23:38:29

#include <stdio.h>
int main(void)
{
      int year                                                                        ;
      printf("Enter a year :")                                                         ;
      scanf("%d" , & year)                                                            ;
      if(! (year % 4) && (year % 100) || ! (year % 400)) printf("it's a leap year !\n") ;
      else printf("it isn't a leap year !\n")                                           ;
}
页: [1]
查看完整版本: 大佬哪出问题了?