为了账号安全,请及时绑定邮箱和手机立即绑定

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

#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;

}


正在回答

1 回答

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

#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://img1.sycdn.imooc.com//5b7010ac0001ff2a06520105.jpg

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

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

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信