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

结果和我设想的不符 可能对运行顺序理解有偏差

 int year = 2008;

    int month = 8;

    int day = 8;

    int f,s;

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

    {

         f=29;

    }

    else

    {

         f=28;

    }    

    switch(month)

    {

        case 12:

            s+=30;

        case 11:

            s+=31;

        case 10:

            s+=30;

        case 9:

            s+=31;

        case 8:

            s+=31;

        case 7:

            s+=30;

        case 6:

            s+=31;

        case 5:

            s+=30;

        case 4:

            s+=31;

        case 3:

            s+=f;

        case 2:

            s+=31;

        case 1:

            s+=day;

            break;

            

    }

    printf("2008年8月8日是该年的第%d天",s);


正在回答

3 回答

给s赋初值就好了,编译器会给未赋初值的变量赋一个很大的随机数

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

Cyber丶Kaka

int year = 2008; int month = 8; int day = 8; int f; int s = 0;
2019-02-26 回复 有任何疑惑可以回复我~

思路没有错 s+=31 等于s=s+31  但此前并没有对s进行赋值 就会出问题

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

输出结果为

755079188天

加法是办不到的。。。但如果产生循环了 又怎么会输出结果

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

举报

0/150
提交
取消
C语言入门
  • 参与学习       926301    人
  • 解答问题       20799    个

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

进入课程

结果和我设想的不符 可能对运行顺序理解有偏差

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