C語言 | 計算某日是該年的第幾天

例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語言入門到精通

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章