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

请各位大佬帮忙看一下问题在哪

#include <stdio.h>

int main() 

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

    int year = 2008;

    int month =8;

    int day = 8;

    int sum=0;

for(int i=1,i<=month,i++)

{

  if(i==1||3||5||7||8||10||12)

  {

      sum+=31;

  }

  else if(i==4||6||9||11)

{

      sum+=30;

}

 else

 {

    sum+=28; 

}

}

if(year%4==0)

{

    sum=sum+1;    

}

else

{

    sum+=0;

}



printf("这一天是该年的第%d天",sum);



return 0;



}


正在回答

31 回答

别的先不说。

if(i==1||3||5||7||8||10||12)和else if(i==4||6||9||11)这种写法是没有的。


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

#include <math.h>

#include <stdio.h>

int main() 

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

    int year = 2008,month =8,day = 8,sum=0;

for(int i=1;i<month;i++)

{

switch(i)

{

case 1:

case 3: 

    case 5: 

    case 7: 

case 8: 

    case 10: 

    case 12:sum+=31;break; 

    case 4: 

    case 6: 

    case 9: 

    case 11:sum+=30;break; 

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

   sum+=29;

   else  

   sum+=28;break;

}

}

sum+=day;

printf("这一天是该年的第%d天",sum);

system("pause");

return 0;

}


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

小小疾飞

system("pause");这行去掉。是不是简洁明了一些。
2019-07-19 回复 有任何疑惑可以回复我~
#2

宝慕林7245676 提问者 回复 小小疾飞

嗯嗯,这个思路清晰很多。现在明白了。
2019-07-19 回复 有任何疑惑可以回复我~
#3

宝慕林7245676 提问者 回复 小小疾飞

感谢指点!
2019-07-19 回复 有任何疑惑可以回复我~
#4

小小疾飞 回复 宝慕林7245676 提问者

有什么问题都可以在这个问答评论里发出来 我都能解决。
2019-07-19 回复 有任何疑惑可以回复我~
查看1条回复

在打中文时忘记切换了。

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

嗯嗯。

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

啊啊啊啊,for循环的表达式之间要用分号,愣是没看出来

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

小小疾飞

printf("这一天是该年的第%d天",sum);这个里面你逗号用的全角的。
2019-07-19 回复 有任何疑惑可以回复我~
#2

宝慕林7245676 提问者 回复 小小疾飞

忘记切换了。
2019-07-19 回复 有任何疑惑可以回复我~
#3

宝慕林7245676 提问者 回复 宝慕林7245676 提问者

非常感谢指出错误!
2019-07-19 回复 有任何疑惑可以回复我~

不提倡这样写,整个结构非常乱。极其影响思路,下面给你看看switch case的。

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

#include <math.h>

#include <stdio.h>

int main() 

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

    int year = 2008;

    int month = 3;

    int day = 1;

    int sum =0;

    int i;

    for(i=1;i<=month;i++)

{

    if(i==month)

{

    sum+=day;

}    

   else if (i==1||i==3||i==5||i==7||i==8||i==10||i==12)    

{

    sum+=31;

}    

   else if(i==2)

{

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

sum+=29;

else

sum+=28; 

}    

    else 

{

    sum+=30;

   }

}

printf("这一天是该年的第%d天",sum);

return 0;

}

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

可以告诉我对的写法和原因吗,我真的不太懂了?

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

我现在只看出了这一个

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

我的printf没打分号?

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

小小疾飞

喔?只是这样而已吗?
2019-07-19 回复 有任何疑惑可以回复我~
首页上一页1234下一页尾页

举报

0/150
提交
取消

请各位大佬帮忙看一下问题在哪

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