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

做了一个可以输入日期的 但是运行后始终只能输出一月份的 求解

#include <stdio.h>

int main() 

    int year,month,day,y,sum;

    scanf("%d %d %d",&year,&month,&day);

    if(year%100==0&&year%400==0)

y=100;

else if(year%4==0&&year%100!=0)

y=100;

else

y=200;

    switch(y)

    {

case 100:

        if(month=1)

sum=day;

else if(month=2)

sum=31+day;

        else if(month=3)

sum=60+day;

        else if(month=4)

sum=91+day;

        else if(month=5)

sum=121+day;

        else if(month=6)

sum=152+day;

        else if(month=7)

sum=182+day;

        else if(month=8)

sum=213+day;

        else if(month=9)

sum=244+day;

        else if(month=10)

sum=274+day;

        else if(month=11)

sum=305+day;

        else if(month=12)

sum=335+day;

break;

        case 200:

if(month=1)

sum=day;

else if(month=2)

sum=31+day;

        else if(month=3)

sum=59+day;

        else if(month=4)

sum=90+day;

        else if(month=5)

sum=120+day;

        else if(month=6)

sum=151+day;

        else if(month=7)

sum=181+day;

        else if(month=8)

sum=212+day;

        else if(month=9)

sum=243+day;

        else if(month=10)

sum=273+day;

        else if(month=11)

sum=304+day;

        else if(month=12)

sum=334+day;

break;

    

    

    }

    printf("%d",sum);

    

    system("pause");

    

    

  return 0;

}


提问者:Sinann 2018-08-12 13:40

个回答

  • 慕桂英2170621
    2018-08-12 18:49:20
    已采纳

    以下代码可以直接复制测试,可以参考下:

    #include <stdio.h>

    #include <stdlib.h>


    /* run this program using the console pauser or add your own getch, system("pause") or input loop */


    int main(int argc, char *argv[]) {

    /*

    使用switch语句和if...else语句,计算2008年8月8日这一天,是该年中的第几天。

    程序分析:

        以5月1日为例,应该先把前4个月的天数加起来,然后再加上1天即本年的第几天。

    特殊情况:

      在计算闰年的时候,2月是29天。

    */

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

        int year = 2008;

        int month = 8;

        int day =8;

        int mNumber;//该月份number天数

        int mTnumber=0;//本月之前月份累计天数 

        int number;//全年第number天数

        

    int i;//定义循环变量i 

        for(i=0;i<=month-1;i++){

        switch(i){

        case 0:

        mNumber=0;

        break;

            case 1:

            case 3:

            case 5:

            case 7:

            case 8:

            case 10:

            case 12:

           //printf("mNumber是%d",31);

           mNumber=31;

           break;

       case 2:

           //是否闰年

           if(year%4==0){

               //printf("是闰年,二月是29天");

               //printf("mNumber是%d",29);

               mNumber=29;

           }else{

               //printf("是平年,二月是28天");

               //printf("mNumber是%d",28);

               mNumber=28;

           }

           break;

            case 4:

            case 6:

            case 9:

            case 11:

           //printf("mNumber是%d",30);

           mNumber=30;

            break;

        }

        

        mTnumber+=mNumber;

    }

        number=mTnumber+day;

        //printf("2008年8月8日这一天,是该年中的第%d天",number);

        printf("2008年8月8日这一天,是该年中的第%d天",number);

    return 0;

    }

    https://img4.mukewang.com/5b7010ac0001ff2a06520105.jpg