怎么用C语言输入一个日期,求该日期是该年的第几天?
我大概给个思路,代码是现写的 没调试
先定义每个月的天数,2月按28天算
输入年月日后,根据年判断是否闰年(闰年加1天),再从1月加到当月的前一月,再加上日期就可以了
#include stdio.h
int month[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
main()
{int yy,mm,dd, days;
int i;
printf(“input year:”); scanf(“%d”, yy);
printf(“input month:”); scanf(“%d”, mm);
printf(“input day:”); scanf(“%d”, dd);
/* 如果大于2月,要做闰年的判断,忘了,不一定准 */
if( mm 2 ((year%4==0 year%100!=0) || year%400==0) ) days = 1;
else days = 0;
/* 加上前面各整月的天数 */
for(i = 0; i mm-1; i++) days += month[i];
/* 加上日数 */
days += dd;
printf(“This is the %d day of year %d!!\n”, days, yy);
}
比如输入 1999 2 1
应该输出:This is the 32 day of year 1999!!
c语言编程:用数组的知识来设计一个程序 输入一个日期,计算这一天是一年中的第几天
#include
main()
{int
a[12]={31,28,31,30,31,30,31,31,30,31,30,31},/*平年的*/
b[12]={31,29,31,30,31,30,31,31,30,31,30,31};/*闰年的*/
int
year,month,day,sum,n=0;
scanf(“%d,%d,%d”,year,month,day);
if(year%4==0)
{for(sum=0;n
追问:
我的意思是日期自己输入。。看是第几天
追答:
这里就是输入日期啊,不会看吗?我试过,是可以的。
#include
main()
{int
a[12]={31,28,31,30,31,30,31,31,30,31,30,31},/*平年的*/
b[12]={31,29,31,30,31,30,31,31,30,31,30,31};/*闰年的*/
int
year,month,day,sum,n=0;
scanf(“%d,%d,%d”,year,month,day);/*这个就是输入年月日啦*/
if(year%4==0)
{for(sum=0;n
评论
加载更多
输入年月日判断这一天是这一年的第几天 ?(C语言编写)!
#includelt;stdio.hgt;
//输入某年某月某日,判断这一天是这一年的第几天?
int getDaysByMonth(int m,int d,char flag)
{
int c;
if(flag==’r’){//闰年
if(m==2){//2月是29天
return(31+d);
}else if(mgt;2){
c=0;
m=m-1;
for(;mgt;0;m–)
{
if(m==1||m==3||m==5||m==7||m==8||m==10||m==12){
c+=31;
}else if(m==2){
c+=29;
}else{
c+=30;
}
}
return c+d;
}else{
return d;
}
}else{//平年
if(m==2){//2月是28天
return(31+d);
}else if(mgt;2){
c=0;
m=m-1;
for(;mgt;0;m–)
{
if(m==1||m==3||m==5||m==7||m==8||m==10||m==12){
c+=31;
}else if(m==2){
c+=28;
}else{
c+=30;
}
}
return c+d;
}else{
return d;
}
}
}
void main()
{
int y,m,d,count=1;
printf(“请输入年月日(例如2017-01-01):”);
scanf(“%d-%d-%d”,y,m,d);
while(((((y%4==0y%100!=0)||(y%400==0))(m==2))dgt;29)||
(y%400!=0y%4!=0m==2dgt;28)||
((m==1||m==3||m==5||m==7||m==8||m==10||m==12)dgt;31)||
((m==4||m==6||m==9||m==11)dgt;30)){
printf(“请输入年月日(例如2017-01-01):”);
scanf(“%d-%d-%d”,y,m,d);
}
//先判断是否为闰年
if((y%4==0y%100!=0)||(y%400==0)){//闰年
count=getDaysByMonth(m,d,’r’);
}else{//平年
count=getDaysByMonth(m,d,’n’);
}
printf(“%d-%02d-%02d是今年的第%d天\n”,y,m,d,count);
putchar(‘\n’);
}
扩展资料:
include用法:
#include命令预处理命令的一种,预处理命令可以将别的源代码内容插入到所指定的位置;可以标识出只有在特定条件下才会被编译的某一段程序代码;可以定义类似标识符功能的宏,在编译时,预处理器会用别的文本取代该宏。
插入头文件的内容
#include命令告诉预处理器将指定头文件的内容插入到预处理器命令的相应位置。有两种方式可以指定插入头文件:
1、#includelt;文件名gt;
2、#include”文件名”
如果需要包含标准库头文件或者实现版本所提供的头文件,应该使用第一种格式。如下例所示:
#includelt;math.hgt;//一些数学函数的原型,以及相关的类型和宏
如果需要包含针对程序所开发的源文件,则应该使用第二种格式。
采用#include命令所插入的文件,通常文件扩展名是.h,文件包括函数原型、宏定义和类型定义。只要使用#include命令,这些定义就可被任何源文件使用。如下例所示:
#include”myproject.h”//用在当前项目中的函数原型、类型定义和宏
可以在#include命令中使用宏。如果使用宏,该宏的取代结果必须确保生成正确的#include命令。例1展示了这样的#include命令。
【例1】在#include命令中的宏
#ifdef _DEBUG_
#define MY_HEADER”myProject_dbg.h”
#else
#define MY_HEADER”myProject.h”
#endif
#include MY_HEADER
当上述程序代码进入预处理时,如果_DEBUG_宏已被定义,那么预处理器会插入myProject_dbg.h的内容;如果还没定义,则插入myProject.h的内容。
C语言计算某年某月某日 是该年的第几天
#include
void main()
{
int y,m,d;
int sum=0;
int flog;//标识是否是闰年
printf(“请输入年月日(yyyy-mm-dd)\n”);
scanf(“%4d-%2d-%2d”,y,m,d);
if(( y%4==0 y%100!=0 ) || y%400==0)
flog=1;
else
flog=0;
while((y0)||(m12||m0)||(d0||d31)||((m%2==0)(d==31))||((flog==1)(m==2)(d28)))
{
printf(“input errro!\n”);
printf(“请输入年月日(yyyy-mm-dd)\n”);
scanf(“%4d-%2d-%2d”,y,m,d);
}
switch (m-1)
{
case 12: sum+=31;
case 11: sum+=30;
case 10: sum+=31;
case 9: sum+=30;
case 8: sum+=31;
case 7: sum+=31;
case 6: sum+=30;
case 5: sum+=31;
case 4: sum+=30;
case 3: sum+=31;
case 2:
if(flog==1)
//这里改一下
sum+=28;
else
sum+=30;
case 1: sum+=31;break;
//这里加上一个break语句
default:printf(“非法月份\n”);
break;
}
sum=sum+d;
if(flog==1)
printf(“%d is leap year!\n”,y);
printf(“这一天是这年的第%d天”,sum);
}