C语言输入年月日输出是该年的第几天(改错)

#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;
}

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);
getchar();
}

第1个回答  2019-02-23
调试通过的程序代码如下:
#definen10
main()
{
inta[n],i,sum,max,min;
floataver;
for(i=0;i<n;i++)scanf("%d",&a[i]);
sum=max=min=0;
for(i=1;i<n;i++)
{
if(i==0||max<a[i])max=a[i];
if(i==0||min>a[i])min=a[i];
sum=sum+a[i];
}
aver=1.0*(sum-max-min)/(n-2);
printf("average=%f\n",aver);
}
上面的程序运行结果如下:
-9-812345678
average=3.500000
三个地方:
一是n必须要大写,二是判断最大、最小的时候你反了,而且要同时判断i,因为输入的内容有可能全部为负数,而你原来的程序最大数就会成为0,三是除法的时候先用个1.0来乘。
第2个回答  2008-08-19
呵呵,不仔细啊~~
两个地方不对,都在这个循环里出的问题:
首先,
for(n=1;n>month;n++)//应该是n<month才合理
其次,
total_days+=len_of_month(year,month); //参数应该传n,而不是month

看还有什么问题不~~?本回答被提问者采纳
第3个回答  2019-12-24
我改了下。你比对下你的看看哪里不一样吧。
#include
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
评论
0
0
0
加载更多
第4个回答  2008-08-19
我改了下。你比对下你的看看哪里不一样吧。

#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;
}

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);
getchar();
}
相似回答