输入年和天数,输出对应的年、月、日。 例如:输入2000和61,输出2000-3-1。 C语言,谢谢。错在哪里了?

#include<stdio.h>intmain(void){intyear,yearday,day,month;voidmonth_day(intyear,yearda... #include<stdio.h>
int main (void)
{
int year,yearday,day,month;
void month_day(int year,yearday,*pmonth,*pday);
printf("请输入年份和天数\n");
scanf("%d%d",&year,&day);
month_day (year,yearday,&month,&day );
printf("%d-%d-%d",year,month,day);
return 0;

}

void month_day(int year,yearday,*pmonth,*pday)
{ int pd,i;
int tab[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}
}
pd=(year%400==0||year%4==0&&year%100!=0 ); //判定闰年,是闰年pd为1,否为0

for(i=1,yearday>tab[pd][i],i++)
yearday=yearday-tab[pd][i];

*pmonth=i;
*pday=yearday;
}
展开
 我来答
145飞雪090
2012-04-08 · TA获得超过621个赞
知道小有建树答主
回答量:282
采纳率:100%
帮助的人:152万
展开全部
已通过测试,望采纳。
#include<stdio.h>
int main (void)
{
int year,yearday,day,month;
void month_day(int year,int yearday,int *pmonth,int *pday);
printf("请输入年份和天数\n");
scanf("%d%d",&year,&yearday);
month_day (year,yearday,&month,&day );
printf("%d-%d-%d",year,month,day);
return 0;

}

void month_day(int year,int yearday,int *pmonth,int *pday)
{ int pd,i;
int tab[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}
};
pd=(year%400==0||(year%4==0&&year%100!=0)); //判定闰年,是闰年pd为1,否为0

for(i=0;yearday>tab[pd][i];i++)
yearday=yearday-tab[pd][i];

*pmonth=i;
*pday=yearday;
}
追问
你好,是因为void month_day(int year,int yearday,int *pmonth,int *pday); 
不能 这样写吗void month_day(int year,yearday,*pmonth,*pday);
不是能省略吗,还是有其他问题?希望指出,授人以鱼不如授人以渔,谢谢。
追答
不可以省略,每一个形参都必须有确定的类型
就是能“省略”,那个叫不确定形参个数,形式为void month_day(int year,int yearday...); 函数内仍需注明,只要出现在形参表中都加类型
apples1233
2012-04-08
知道答主
回答量:19
采纳率:0%
帮助的人:7.8万
展开全部
。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式