问答详情
源自:4-17 switch与if语句的应用

为什么不对啊

#include <stdio.h>int main() {     /* 定义需要计算的日期 */    
int year = 2008;    
int month = 8;    
int day = 8;    /*     * 请使用switch语句,if...else语句完成本题     * 如有想看小编思路的,可以点击左侧任务中的“不会了怎么办”     * 小编还是希望大家独立完成哦~     */    
int a,flag;    
switch(month)    
{        case 1:a=0;break;        
         case 2:a=31;break;        
         case 3:a=59;break;        
         case 4:a=90;break;        
         case 5:a=120;break;        
         case 6:a=151;break;        
         case 7:a=181;break;        
         case 8:a=212;break;        
         case 9:a=243;break;        
         case 10:a=273;break;       
         case 11:a=304;break;        
         case 12:a=334;break;        
         default:printf("无");break;   
 }    
 a=a+day;    
 if(year%4==0&&year%100!=0||year%400==0)     
 flag=1;    
 else     
 flag=0;    
 if(flag=1&&month>2)     
 a++    
 printf("%d年%d月%d日是第%d天",year,month,day,a);    
 return 0;
 }


提问者:MJCX13013 2020-04-30 12:34

个回答

  • 学习NO1
    2020-05-03 15:35:59

    还有就是int mian(){不能和#include <stdio.h>放一行

  • 学习NO1
    2020-05-03 15:35:13

    第28行a++后面少了;

  • 学习NO1
    2020-05-03 15:34:33

    #include <stdio.h>

    int main() {     /* 定义需要计算的日期 */    

    int year = 2008;    

    int month = 8;    

    int day = 8;    /*     * 请使用switch语句,if...else语句完成本题     * 如有想看小编思路的,可以点击左侧任务中的“不会了怎么办”     * 小编还是希望大家独立完成哦~     */    

    int a,flag;    

    switch(month)    

    {        case 1:a=0;break;        

             case 2:a=31;break;        

             case 3:a=59;break;        

             case 4:a=90;break;        

             case 5:a=120;break;        

             case 6:a=151;break;        

             case 7:a=181;break;        

             case 8:a=212;break;        

             case 9:a=243;break;        

             case 10:a=273;break;       

             case 11:a=304;break;        

             case 12:a=334;break;        

             default:printf("无");break;   

     }    

     a=a+day;    

     if(year%4==0&&year%100!=0||year%400==0)     

     flag=1;    

     else     

     flag=0;    

     if(flag=1&&month>2)     

     a++;   

     printf("%d年%d月%d日是第%d天",year,month,day,a);    

     return 0;

     }


  • MJCX13013
    2020-05-02 10:48:55

    啊!刚刚看到了,a++后面少了一个“;”

  • MJCX13013
    2020-05-02 10:47:27

    虽然还是不知道错哪儿了,不过总算写对了
    分享一下
    #include <stdio.h>int main() 
    {     int year = 2008;    
          int month = 8;    
          int day = 8;    
          int a,flag;    
          switch(month)    
         {        
         case 1:a=0;break;        
         case 2:a=31;break;        
         case 3:a=59;break;        
         case 4:a=90;break;       
         case 5:a=120;break;        
         case 6:a=151;break;        
         case 7:a=181;break;        
         case 8:a=212;break;        
         case 9:a=243;break;        
         case 10:a=273;break;        
         case 11:a=304;break;        
         case 12:a=334;break;        
         default:printf("无");break;    
         }    
         if(year%400==0||year%4==0&&year%100!=0)     
         flag=1;    
         else     
         flag=0;    
         if(flag==1&&month>=2)     
         a=a+1;    
         a=a+day;    
         printf("%d年%d月%d日是该年的第%d天",year,month,day,a);        
         return 0;
       }


  • 琉慕
    2020-05-01 21:40:22

    第28行a++后没分号,在第一行int和<stdio.h>之间打一个换行