当前位置:首页 » 编程语言 » 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]);
}