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

写了段代码,存在逻辑错误,可是我自己又找不到,悠悠们,期待你们火眼金睛啊

#include <stdio.h>
int main() 
{ 
    
    int year = 2008; 		//年 
    int month = 8;			//月 
    int day = 8;   			//日 
    int i;					//FOR循环控制变量 
    int month_day;			//每月的天数 
    int day_num=0;			//需要计算的总天数 
    int month_feb=0;		//设二月30天,若是闰年则该变量为1,减去该变量 
    
    for(i=1;i<=month-1;i++)
    {
    if(i==1 || i==3 || i==5 || i==7 || i==8 || i==10 || i==12)	//判断大月 
    month_day=31;
    
    else if (i==2 || i==4 || i==6 || i==9 || i==11) 			//判断小月 
	month_day=30;
	
    else if((year%4==0 && year%100!=0) || (year%400==0))  			//判断闰年 
	month_feb=1;
    
    day_num=month_day+day_num+day-month_feb;					//计算总天数 
    printf("%d\n",month_day);
    printf("%d\n",month_feb);
    
    }
    printf("2008年8月8日是该年的第%d天",day_num);
	return 0;
}


正在回答

3 回答

计算总天数的别放在循环内    判断闰年的会导致每循环一次总天数减 1天,还有总天数每循环一次都会加 8 天!

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

扶_桑 提问者

非常感谢!
2016-05-22 回复 有任何疑惑可以回复我~
#include <stdio.h>
int main() 
{ 
     
    int year = 2008;        //年 
    int month = 8;           //月 
    int day = 8;              //日 
    int i;                 //FOR循环控制变量 
    int month_day = 0;         //每月的天数 
    int day_num=0;         //需要计算的总天数 
    int month_feb=0;       //设二月30天,若是闰年则该变量为1,减去该变量 
     
    for(i=1;i<=month-1;i++)
    {
	    if(i==1 || i==3 || i==5 || i==7 || i==8 || i==10 || i==12)  //判断大月 
	    month_day +=31;
	     
	    else if (i==2 || i==4 || i==6 || i==9 || i==11)          //判断小月 
	    month_day +=30;
	     
	    if((year%4==0 && year%100!=0) || (year%400==0))             //判断闰年 
	    month_feb=1;
	    
    }
    day_num += month_day  + day - month_feb; 
    printf("2008年8月8日是该年的第%d天",day_num);
    return 0;
}


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

扶_桑 提问者

xuexi学习了!
2016-05-22 回复 有任何疑惑可以回复我~

2月份已经错了。还有判断闰年关月份什么事?else if就错了

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

举报

0/150
提交
取消

写了段代码,存在逻辑错误,可是我自己又找不到,悠悠们,期待你们火眼金睛啊

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