求解一个c语言问题,输入年月日输出第几天,但日子不会加,急求。。求解。。。

# include<stdio.h>
int DayofYear(int year, int month, int day);
static int dayTab[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},
{0,31,29,31,30,31,30,31,31,30,31,30,31}};
main()
{
printf("Enter year, month, day:\n");
int day, month, year;
scanf("%d%d%d",&year,&month,&day);
DayofYear(year, month, day);
printf("%d",day);

}
int DayofYear(int year, int month, int day)
{
int i, leap;
leap = ((year % 4==0)&&(year % 100!=0)||(year % 400==0));
for(i=1;i<=month;i++)
{
day = day + dayTab[leap][i];
}
return day;
}

1、不改其他情况下
只改:
printf("%d",DayofYear(year, month, day));
和
for(i=1;i< month;i++) //如果 i可以等于month,会多出这个月的天数

2、引用

#include<iostream>
using namespace std;
#include<stdio.h>
int DayofYear(int year, int month, int &day); //引用时,才会改变原day 里面的值
static int dayTab[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},
{0,31,29,31,30,31,30,31,31,30,31,30,31}};
main()
{
printf("Enter year, month, day:\n");
int day, month, year;
scanf("%d%d%d",&year,&month,&day);
DayofYear(year, month, day);
printf("%d",day);
}
int DayofYear(int year, int month, int &day) //引用时,才会改变原day 里面的值
{
int i, leap;
leap = ((year % 4==0)&&(year % 100!=0)||(year % 400==0));
for(i=1;i< month;i++) //如果 i可以等于month,会多出这个月的天数
{
day = day + dayTab[leap][i];
}
return day;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-12-03
如下修改就好啦!
#include<stdio.h>
int DayofYear(int year, int month, int day);
static int dayTab[2][13]={
{0,31,28,31,30,31,30,31,31,30,31,30,31},
{0,31,29,31,30,31,30,31,31,30,31,30,31}};
main()
{
printf("Enter year, month, day:\n");
int day, month, year;
scanf("%d%d%d",&year,&month,&day);
day=DayofYear(year, month, day);
printf("%d",day);
}
int DayofYear(int year, int month, int day)
{
int i, leap;
leap = ((year % 4==0)&&(year % 100!=0)||(year % 400==0));
for(i=1;i<=month;i++){
day = day + dayTab[leap][i];
}
return day;
}本回答被网友采纳
第2个回答  2012-12-03
其实不需要定义二维数组,通过判断year是否为闰年,来判断是否需要多加1年
第3个回答  2012-12-03
好难
第4个回答  2012-12-03
for( i = 1; i < month; i++ )
相似回答