當前位置:首頁 » 編程語言 » c語言用數組判斷第幾天
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言用數組判斷第幾天

發布時間: 2023-06-29 22:51:57

㈠ 」輸入某年某月某日,判斷這一天是這一年的第幾天「用c語言怎樣編程

#include<stdio.h>
voidmain()
{
intsumday(intmonth,intday);/*計算第多少天的函數聲明*/
intleap(intyear);/*判斷是否閏年的函數聲明*/
intmonth,day,days,year;
intdaytab[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};/*一般年的12個月的天數組成一個數組*/
printf("Pleaseinputdate(year,month,day):");/*提示輸入年月日*/
scanf("%d-%d-%d",&year,&month,&day);/*輸入年月日*/
printf("%d/%d/%d\n",year,month,day);
days=sumday(month,day);/*計算天數的函數調用*/
if(leap(year)&&month>=3)/*調用判斷是否閏年的函數,並且月份大於等於3時天數加1*/
days=days+1;
printf("Todayisthe%ddayofthisyear.",days);/*顯示是第多少天的函數*/
}
intsumday(intmonth,intday)
{
intdaytab[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
inti;
for(
i=0;i<month;i++)
day+=daytab[i];
return(day);
}
intleap(intyear)
{
intleap;
leap=(year%4==0&&year%100!=0||year%400==0);
return(leap);
}

㈡ C語言中輸入一個日期計算他是今年的第幾天

輸入年月日三個值,先累加該年之前各個月的每月天數,最後累加日期天數即可獲取結果。

一、演算法設計:

1、輸入年月日三個值;

2、為保證程序健壯性,可以對三個值的合法性進行判斷,只對合法數據進行操作;

3、累加之前各月天數;

4、累加當前日值;

5、輸出結果。

二、注意點:

可以使用數組存儲各個月份的天數,用循環累加。需要注意的是閏年的判斷。對於閏年,2月要多加一天。

三、參考代碼:

#include<stdio.h>
intmain()
{
intmdays[12]={31,28,31,30,31,30,31,31,30,31,30,31};//十二個月的天數。
inty,m,d,r=0,i;
scanf("%d%d%d",&y,&m,&d);
if(y%400==0||(y%4==0&&y%100!=0))//閏年。
mdays[1]=29;//設置閏年二月值。
if(y<0||m<=0||m>12||d<=0||d>mdays[m-1])//輸入非法。
{
printf("輸入年月日不合法 ");//提示並退出。
return-1;
}
for(i=0;i<m-1;i++)//累加之前各個月。
r+=mdays[i];
r+=d;//累加日期值。
printf("%d ",r);//輸出結果。
return0;
}

㈢ c語言輸入年月日,算第幾天

日期比較容易算。星期幾可以用下面的公式來計算:

(年份-1) + (年份-1)/4 - (年份-1)/100 + (年份-1)/400 +第幾天

建立兩個數組,一個是每月天數的數組,一個是星期幾的數組。

程序如下:

#include<stdio.h>
voidmain()
{
inti,n=0,year,month,day,a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
charb[7][10]={"Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"};
scanf("%d/%d/%d",&year,&month,&day);
if((year%4==0&&year%100)||year%400==0)a[2]=29;
for(i=0;i<month;i++)
n+=a[i];n+=day;
printf("%d%s",n,b[((year-1)+(year-1)/4-(year-1)/100+(year-1)/400+n)%7]);
}