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);     //天数减去该月的该天之后的天数


目录
相关文章
|
2月前
|
存储 算法 C语言
"揭秘C语言中的王者之树——红黑树:一场数据结构与算法的华丽舞蹈,让你的程序效率飙升,直击性能巅峰!"
【8月更文挑战第20天】红黑树是自平衡二叉查找树,通过旋转和重着色保持平衡,确保高效执行插入、删除和查找操作,时间复杂度为O(log n)。本文介绍红黑树的基本属性、存储结构及其C语言实现。红黑树遵循五项基本规则以保持平衡状态。在C语言中,节点包含数据、颜色、父节点和子节点指针。文章提供了一个示例代码框架,用于创建节点、插入节点并执行必要的修复操作以维护红黑树的特性。
68 1
|
2月前
|
NoSQL 编译器 程序员
【C语言】揭秘GCC:从平凡到卓越的编译艺术,一场代码与效率的激情碰撞,探索那些不为人知的秘密武器,让你的程序瞬间提速百倍!
【8月更文挑战第20天】GCC,GNU Compiler Collection,是GNU项目中的开源编译器集合,支持C、C++等多种语言。作为C语言程序员的重要工具,GCC具备跨平台性、高度可配置性及丰富的优化选项等特点。通过简单示例,如编译“Hello, GCC!”程序 (`gcc -o hello hello.c`),展示了GCC的基础用法及不同优化级别(`-O0`, `-O1`, `-O3`)对性能的影响。GCC还支持生成调试信息(`-g`),便于使用GDB等工具进行调试。尽管有如Microsoft Visual C++、Clang等竞品,GCC仍因其灵活性和强大的功能被广泛采用。
95 1
|
2月前
|
编译器 C语言 计算机视觉
C语言实现的图像处理程序
C语言实现的图像处理程序
78 0
|
28天前
|
存储 编译器 程序员
C语言程序的基本结构
C语言程序的基本结构包括:1)预处理指令,如 `#include` 和 `#define`;2)主函数 `main()`,程序从这里开始执行;3)函数声明与定义,执行特定任务的代码块;4)变量声明与初始化,用于存储数据;5)语句和表达式,构成程序基本执行单位;6)注释,解释代码功能。示例代码展示了这些组成部分的应用。
41 10
|
2月前
|
自然语言处理 编译器 C语言
C语言程序的编译
C语言程序的编译
46 2
|
3月前
|
前端开发 C语言 C++
C语言03----第一个程序HelloWorld(vs版)
C语言03----第一个程序HelloWorld(vs版)
|
4月前
|
IDE 编译器 开发工具
详细解读C语言程序设计:现代方法(第2版)第二章全部习题答案
详细解读C语言程序设计:现代方法(第2版)第二章全部习题答案
27 0
|
4月前
|
自然语言处理 C语言 C++
程序与技术分享:C++写一个简单的解析器(分析C语言)
程序与技术分享:C++写一个简单的解析器(分析C语言)
|
4月前
|
程序员 编译器 C语言
详解C语言入门程序:HelloWorld.c
详解C语言入门程序:HelloWorld.c
|
4月前
|
机器学习/深度学习 C语言 Windows
程序与技术分享:C语言学生宿舍管理系统代码(可运行)
程序与技术分享:C语言学生宿舍管理系统代码(可运行)
38 0