输入年和天数,输出对应的年、月、日。 例如:输入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;
} 展开
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;
} 展开
2个回答
展开全部
已通过测试,望采纳。
#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;
}
#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...); 函数内仍需注明,只要出现在形参表中都加类型
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询