C语言编写程序计算某年某月某日是该年中的第几天(3种方法)

简介: C语言编写程序计算某年某月某日是该年中的第几天编写程序计算某年某月某日是该年中的第几天例如输入fool girl 的出生日期1999-5-27输出147

C语言编写程序计算某年某月某日是该年中的第几天

编写程序计算某年某月某日是该年中的第几天

例如输入fool girl 的出生日期1999-5-27

输出147

第一种switch语句代码实现

intyear,month,day,sum=0,i;
scanf("%d-%d-%d",&year,&month,&day);
if(month==1)                //如果是1月,直接输出day就行printf("%d ",day);
else{
for(i=1;i<month;i++)
switch(i)
        {
case1:case3:case5:case7:case8:case10:case12:
sum+=31;
break;
case4:case6:case9:case11:
sum+=30;
break;
case2:sum+=28;
        }
sum+=day;                  //如果是闰年,3月之后的都需要+1if(year%400==0||year%4==0&&year%100!=0&&month>2)
sum+=1;
printf("%d ",sum);
    }

第二种方法(将之前的月天数直接给出)

intyear, month, day,sum=0;
scanf("%d-%d-%d",&year,&month,&day);
switch(month)
    {
case1: sum=0; break;
case2: sum=31; break;
case3: sum=59; break;
case4: sum=90; break;
case5: sum=120; break;
case6: sum=151; break;
case7: sum=181; break;
case8: sum=212; break;
case9: sum=243; break;
case10: sum=273; break;
case11: sum=304; break;
case12: sum=334; break;
    }
sum+=day;
if(year%4==0&&year%100!=0||year%400==0&&month>2)
sum++;
printf("%d",sum);

第三种最简方法(纯个人认为)

inta[13]={0,31,28,31,30,31,30,31,31,30,31,30,31},year,month,day,sum=0,i;
//数组下标和月份一一对应,内容为对应月份的天数scanf("%d-%d-%d",&year,&month,&day);
if(year%400==0||year%4==0&&year%100!=0)
a[0]=day,a[2]=29;
elsea[0]=day;      
//将day存放到a[0]的位置,方便后续统计,如果是闰年,需要将2月份改为29天for(i=0;i<month;i++)
sum+=a[i];
//因为a[0]存放的是day,所以就可以直接从a[0]遍历相加printf("%d ",sum);

第三种运算实例

image.png

第三种拓展方法(总天数倒着数)

intyear,month,day,sum=365,i,a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
scanf("%d-%d-%d",&year,&month,&day);
if(year%400==0||year%4==0&&year%100!=0)   //闰年366天a[2]=29,sum=366;    //因为是从a[12]开始,所以a[0]就用不到了for(i=12;i>month;i--)    //从12月份开始往前减sum-=a[i];
printf("%d ",sum-a[month]+day);     //天数减去该月的该天之后的天数


目录
相关文章
|
1月前
|
C语言
最简单的C语言程序示例
最简单的C语言程序示例
20 0
|
1月前
|
Serverless C语言
C语言程序通常具有以下基本结构
C语言程序通常具有以下基本结构
10 0
|
17天前
|
存储 编译器 Linux
【C语言】自定义类型:结构体深入解析(二)结构体内存对齐&&宏offsetof计算偏移量&&结构体传参
【C语言】自定义类型:结构体深入解析(二)结构体内存对齐&&宏offsetof计算偏移量&&结构体传参
|
16天前
|
存储 编译器 C语言
深入探索C语言动态内存分配:释放你的程序潜力
深入探索C语言动态内存分配:释放你的程序潜力
28 0
|
9天前
|
C语言
【C语言】用三种循环语句 计算1到1000之间能被2或3整除的数的总和
【C语言】用三种循环语句 计算1到1000之间能被2或3整除的数的总和
|
25天前
|
存储 编译器 C语言
【C语言】结构体的大小是如何计算的?(结构体对齐)
【C语言】结构体的大小是如何计算的?(结构体对齐)
26 0
|
25天前
|
编译器 C语言
【C语言】字母转换大小写的三种方法
【C语言】字母转换大小写的三种方法
43 0
|
1月前
|
存储 Serverless C语言
C语言程序的结构
C语言是一种广泛使用的编程语言,其程序结构清晰,易于理解。下面我们将详细探讨C语言程序的基本结构,并通过一个示例代码来展示这些组成部分是如何协同工作的。 一、C语言程序的基本结构
14 0
|
1月前
|
程序员 C语言
最简单的C语言程序举例
C语言是一种广泛使用的计算机编程语言,适合用于系统编程,也可以用于编写应用程序。它的语法清晰明了,功能强大,是很多程序员的首选语言。下面,我们将通过一个最简单的C语言程序来介绍其基本结构和语法。
26 0
|
1月前
|
前端开发 Unix Linux
Linux indent命令 (格式化C语言源代码的程序)
Linux indent命令 (格式化C语言源代码的程序)
18 0
Linux indent命令 (格式化C语言源代码的程序)