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

为什么输出一直是9,有大佬解决一下循环空运行的问题么

#include <stdio.h>
int main()
{
    int year = 2008;
    int mouth = 8;
    int day = 8;
    int i=1;
    int j;
    for(i=12;i>=mouth;i--)
    {
     switch(i)
  {
   case1:
   break;
   case2:j=j+31;
   break;
   case3:j=j+28;
   break;
   case4:j=j+31;
   break;
   case5:j=j+30;
   break;
   case6:j=j+31;
   break;
   case7:j=j+30;
   break;
   case8:j=j+31;
   break;
   case9:j=j+31;
   break;
  } 
 }
    if(year%400==0||year%4==0||year%100==0&&mouth>2)
    {
     day=day+1+j;
     printf("%d",day);
 }
 else
 {
  day=day+j;
  printf("%d",day);
 }
    return 0;
}

正在回答

3 回答

#include <stdio.h>
int main() 
{ 
    /* 定义需要计算的日期 */
    int year = 2008;
    int month = 8;
    int day = 8;
    /*
     * 请使用switch语句,if...else语句完成本题
     * 如有想看小编思路的,可以点击左侧任务中的“不会了怎么办”
     * 小编还是希望大家独立完成哦~
     */
    int sumDay = 0;
    for(int i=1;i<month;i++){
        switch(i){
            case 1:
            case 3:
            case 5:
            case 7:
            case 8:
            case 10:
            case 12:
                sumDay+=31;
                break;
            case 2:
                if(year%4==0&&year%100!=0||year%400==0){
                    sumDay+=29;
                }else{
                    sumDay+=28;
                }
                break;
            case 4:
            case 6:
            case 9:
            case 11:
                sumDay+=30;
                break;
        }
    }
    sumDay+=day;
    printf("2008年8月8日是该年的第%d天",sumDay);
    return 0;
}


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

你这样做不对吧?那究竟j=多少?

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

加括号。例如下面这样

case9:

{

j=j+31;
   break;

}

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

举报

0/150
提交
取消

为什么输出一直是9,有大佬解决一下循环空运行的问题么

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