首页 > 试题广场 >

写一个函数days,实现第1题的计算。由主函数将年、月、日传

[问答题]

写一个函数days,实现第1题的计算。由主函数将年、月、日传递给days函数,计算

后将日子数传回主函数输出。

推荐

1.

#include<stdio.h>

struct y_m_d

{int year;

int month;

int day;

}date;

int main()

{ int days(struct y_m_d date1);

printf("input year,month,day:");

scanf("%d,%d,%d",&date.year,&date.month,&date.day);

printf("%d/%d is the %dth day in %d \n",date.month,date.day,days(date),date.year);

}


int days(struct y_m_d date1)

{int sum;

switch(date1.month)

{case 1:sum=date1.day;     break;

case 2:sum=date1.day+31;  break;

case 3:sum=date1.day+59;break;

case 4:sum=date1.day+90;break;

case 5:sum=date1.day+120;break;

case 6:sum=date1.day+151;break;

case7:sum=date1.day+i181;break;

case 8:sum=date1.day+212;break;

case 9:sum=date1.day+243;break;

case 10:sum=date1.day+273;break;

case 11:sum=date1.day+304;break;

case 12:sum=date1.day+334;break;

}

if((date1.year  % 4 == 0 && date1.year % 100!=0||date1.year % 400 == 0) &&

date1.month>=3)

sum+=1;

return(sum);

}

2.

#include<stdio.h>

struct y_m_d

{int year;

int month;

int day;

}date;

int main()

{int days(int year,int month,int day);

int days(int,int,int);

int day_sum;

printf("input year,month,day:");

scanf("%d,%d,%d",&date.year,&date.month,&date.day);

day_sum=days(date.year, date.month,date.day);

printf("%d/%d is the %dth day in %d.\n",date.month,date.day, day_sum,date.year);

}


int days(int year,int month,int day)

{int day_sum,i;

int day_tab[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};

day_sum=0;

for(i=1;i<month;i++)

day_sum+=day_tab[i];

day_sum+=day,

if((year%4==0 && year%l00!=0||year%4==0) && month>=3)

day_sum+=1;

returrn(day_sum);

}


发表于 2018-03-25 10:33:57 回复(1)