例74:給出年月日,C語言編程計算該日是該年的第幾天。
解題思路:主函數接受從鍵盤輸入的日期,並調用sum_day和leap函數計算天數,sum_day計算輸入日期的天數。leap函數返回是否是閏年的信息。此題關鍵就是兩部分,一是判斷是否是閏年,如果是閏年的話需要加1,然後就是計算這個月之前的天數,讀者根據這兩個大方面思考即可。
C語言源代碼演示:
#include<stdio.h>//頭文件
int main()//主函數
{
int sum_day(int month,int day);//函數聲明
int leap(int year);//函數聲明
int year,month,day,days;//定義整型變量
printf("輸入日期:") ;
scanf("%d %d %d",&year,&month,&day);
printf("%d-%d-%d",year,month,day);
days=sum_day(month,day); //調用函數sum_day
if(leap(year)&&month>=3) //調用函數leap
{
days=days+1;
}
printf("是這一年的第%d天\n",days);
return 0;//主函數返回值爲0
}
int sum_day(int month,int day)//自定義函數
{
int day_tab[13]={
0,31,28,31,30,31,30,31,31,30,31,30,31};//定義整型數組
int i;//定義整型變量
for(i=1;i<month;i++)//for循環
{
day+=day_tab[i]; //累加所在月之前的天數
}
return day;//將day返回到函數調用處
}
int leap(int year)//判斷是否爲閏年
{
int leap;//定義整型變量
leap=(year%4==0&&year%100!=0||year%400==0);//賦初值
return leap;//將leap返回到函數調用處
}
編譯運行結果如下:
輸入日期:2008 8 8
2008-8-8是這一年的第221天
--------------------------------
Process exited after 6.112 seconds with return value 0
請按任意鍵繼續. . .
以上,如果你看了覺得對你有所幫助,就給小林點個贊,分享給身邊的人叭,這樣小林也有更新下去的動力,跪謝各位父老鄉親啦~
C語言計算某日是該年的第幾天
更多案例可以go公衆號:C語言入門到精通