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


目录
相关文章
|
3月前
|
存储 自然语言处理 编译器
【C语言】编译与链接:深入理解程序构建过程
【C语言】编译与链接:深入理解程序构建过程
|
1月前
|
存储 算法 安全
C 语言中的位运算:挖掘底层计算的高效力量
位运算是C语言中直接操作二进制位的一种技术,能高效处理底层数据,广泛应用于优化算法、硬件编程等领域,是掌握C语言高级特性的关键之一。
|
2月前
|
传感器 人工智能 物联网
C 语言在计算机科学中尤其在硬件交互方面占据重要地位。本文探讨了 C 语言与硬件交互的主要方法,包括直接访问硬件寄存器、中断处理、I/O 端口操作、内存映射 I/O 和设备驱动程序开发
C 语言在计算机科学中尤其在硬件交互方面占据重要地位。本文探讨了 C 语言与硬件交互的主要方法,包括直接访问硬件寄存器、中断处理、I/O 端口操作、内存映射 I/O 和设备驱动程序开发,以及面临的挑战和未来趋势,旨在帮助读者深入了解并掌握这些关键技术。
51 6
|
2月前
|
存储 缓存 算法
在C语言中,数据结构是构建高效程序的基石。本文探讨了数组、链表、栈、队列、树和图等常见数据结构的特点、应用及实现方式
在C语言中,数据结构是构建高效程序的基石。本文探讨了数组、链表、栈、队列、树和图等常见数据结构的特点、应用及实现方式,强调了合理选择数据结构的重要性,并通过案例分析展示了其在实际项目中的应用,旨在帮助读者提升编程能力。
68 5
|
2月前
|
C语言
C语言编程中,错误处理至关重要,能提升程序的健壮性和可靠性
C语言编程中,错误处理至关重要,能提升程序的健壮性和可靠性。本文探讨了C语言中的错误类型(如语法错误、运行时错误)、基本处理方法(如返回值、全局变量、自定义异常处理)、常见策略(如检查返回值、设置标志位、记录错误信息)及错误处理函数(如perror、strerror)。强调了不忽略错误、保持处理一致性及避免过度处理的重要性,并通过文件操作和网络编程实例展示了错误处理的应用。
74 4
|
2月前
|
存储 算法 C语言
C语言中常见的字符串处理技巧,包括字符串的定义、初始化、输入输出、长度计算、比较、查找与替换、拼接、截取、转换、遍历及注意事项
本文深入探讨了C语言中常见的字符串处理技巧,包括字符串的定义、初始化、输入输出、长度计算、比较、查找与替换、拼接、截取、转换、遍历及注意事项,并通过案例分析展示了实际应用,旨在帮助读者提高编程效率和代码质量。
104 4
|
2月前
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
65 1
|
2月前
|
网络协议 物联网 数据处理
C语言在网络通信程序实现中的应用,介绍了网络通信的基本概念、C语言的特点及其在网络通信中的优势
本文探讨了C语言在网络通信程序实现中的应用,介绍了网络通信的基本概念、C语言的特点及其在网络通信中的优势。文章详细讲解了使用C语言实现网络通信程序的基本步骤,包括TCP和UDP通信程序的实现,并讨论了关键技术、优化方法及未来发展趋势,旨在帮助读者掌握C语言在网络通信中的应用技巧。
47 2
|
2月前
|
程序员 C语言
C语言中的指针既强大又具挑战性,它像一把钥匙,开启程序世界的隐秘之门
C语言中的指针既强大又具挑战性,它像一把钥匙,开启程序世界的隐秘之门。本文深入探讨了指针的基本概念、声明方式、动态内存分配、函数参数传递、指针运算及与数组和函数的关系,强调了正确使用指针的重要性,并鼓励读者通过实践掌握这一关键技能。
44 1
|
3月前
|
Java 编译器 C语言
【一步一步了解Java系列】:Java中的方法对标C语言中的函数
【一步一步了解Java系列】:Java中的方法对标C语言中的函数
32 3