请问哪儿错了?

来源:4-17 switch与if语句的应用

C语言小白wlk

2018-08-21 20:12

#include <stdio.h>

int main() 

    /* 定义需要计算的日期 */

    int year = 2008;

    int month = 8;

    int day = 8;

   int sum, flag; 


    switch(month)

    {

        case 1 : sum = 0;   break;

        case 2 : sum = 31;  break;

        case 3 : sum = 59;  break; 

        case 4 : sum = 90;  break;

        case 5 : sum = 120; break; 

        case 6 : sum = 151; break;

        case 7 : sum = 181; break;

        case 8 : sum = 212; break;

        case 9 :sum = 243; break; 

        case 10: sum = 273; break;

        case 11 : sum = 304; break;

        case 12 : sum = 334; break;

        default : printf ("一年当中只有12个月哦!");break;

    }

    

    sum = sum + day;

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

       flag =1;

    else 

       flag = 0;

    if (flag = 1 && month>2)

       sum++;

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

           return 0;

  }


写回答 关注

2回答

  • 绫清竹
    2018-08-23 10:06:10

    再说flag应该是==1啊,最后一个if

  • 绫清竹
    2018-08-22 00:06:43
    #include <stdio.h>
    int main() { 
        /* 定义需要计算的日期 */ 
           int year = 2088;//测试
                int month = 8; 
                   int day = 8;
                      int sum, flag; 
                          switch(month)    {   
                               case 1 : sum = 0;   break;      
                                 case 2 : sum = 31;  break;       
                                 case 3 : sum = 59;  break;         
                                 case 4 : sum = 90;  break;       
                                  case 5 : sum = 120; break;        
                                   case 6 : sum = 151; break;       
                                    case 7 : sum = 181; break;       
                                     case 8 : sum = 212; break;       
                                      case 9 :sum = 243; break;        
                                       case 10: sum = 273; break;        
                                       case 11 : sum = 304; break;       
                                        case 12 : sum = 334; break;       
                                         default : printf ("一年当中只有12个月哦!");break;    }
                                                    sum = sum + day;         
                                                      if (year%400==0 || (year%4==0 && year%100!=0 ))    	
                                                      flag =1;    
                                                       else        
                                                       	flag = 0;   	  
                                                       	  if (flag = 1 && month>2){//此if没起到任何作用  
                                                       	        sum++;//对应year设定的值进行测试  发现year设定任意的数结果却不变只为221         
                                                       	           //所以此if是错的
                                                       	           }
                                                       	           printf("%d年%d月%d日是该年的第%d天",year,month, day,sum);   
                                                       	                   return 0;  }


C语言入门

C语言入门视频教程,带你进入编程世界的必修课-C语言

926027 学习 · 20793 问题

查看课程

相似问题