C语言输入年月日输出是该年的第几天(改错)
来源:百度知道 编辑:UC知道 时间:2024/06/18 04:27:02
int is_leap_year(int year)
{
int leap;
if((year%4==0&&year%100!=0)||(year%400==0))leap=1;
else leap=0;
return leap;
}
int len_of_month(int year,int month)
{
int month_days;
switch(month)
{
case 2:month_days=28;break;
case 4:
case 6:
case 9:
case 11:month_days=30;break;
default:month_days=31;break;
}
if((is_leap_year(year)==1)&&(month==2))month_days++;
return month_days;
}
int len_of_days(int year,int month,int date)
{
int total_days=0,n;
for(n=1;n>month;n++)
total_days+=len_of_month(year,month);
total_days+=date;
return total_days;
}
void main()
{
int year,month,days,date,n;
printf("请输入 年,月,日:");
scanf("%d,%d,%d",&year,&month,&date);
days=len_of_days(year,month,date);
printf("%d年%d月%d日是该年的第%d天",year,month,date,days);
ge
呵呵,不仔细啊~~
两个地方不对,都在这个循环里出的问题:
首先,
for(n=1;n>month;n++)//应该是n<month才合理
其次,
total_days+=len_of_month(year,month); //参数应该传n,而不是month
看还有什么问题不~~?
我改了下。你比对下你的看看哪里不一样吧。
#include<stdio.h>
int is_leap_year(int year)
{
int leap;
if((year%4==0&&year%100!=0)||(year%400==0))leap=1;
else leap=0;
return leap;
}
int len_of_month(int year,int month)
{
int month_days;
switch(month)
{
case 2:month_days=28;break;
case 4: ;
case 6: ;
case 9: ;
case 11:month_days=30;break;
default:month_days=31;break;
}
if((is_leap_year(year)==1)&&(month==2))month_days++;
return month_days;
}
int len_of_days(int year,int month,int date)
{
int total_days=0,n;
for(n=1;n<month;n++)
total_days+=len_of_month(year,month);
total_days+=date;
return total_days;
}