#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; }
计算总天数的别放在循环内 判断闰年的会导致每循环一次总天数减 1天,还有总天数每循环一次都会加 8 天!
#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; }
2月份已经错了。还有判断闰年关月份什么事?else if就错了