C语言程序设计每日一练(5)

判断某天是一年中的第几天

今天给大家分享一个简单却实用的程序,它可以根据输入的年、月、日,准确判断出这一天是这一年的第几天。

首先,我们来分析一下这个程序的思路。以 3 月 5 日为例,我们需要先将前两个月的天数加起来,再加上 5 天,就能得到这一年的第几天。当然,对于闰年且输入月份大于 3 的特殊情况,需要多加一天。

接下来,让我们看看程序的源代码。程序中使用了switch语句来计算每个月之前的总天数。然后,将这个总天数加上输入的日数,得到这一天在这一年中的总天数。

#include "stdio.h"
main()
{
int day,month,year,sum,leap;
printf("\nplease input year,month,day\n");
scanf("%d,%d,%d",&year,&month,&day);
switch(month)/*先计算某月以前月份的总天数*/
{
 case 1:sum=0;break;
 case 2:sum=31;break;
 case 3:sum=59;break;
 case 4:sum=90;break;
 case 5:sum=120;break;
 case 6:sum=151;break;
 case 7:sum=181;break;
 case 8:sum=212;break;
 case 9:sum=243;break;
 case 10:sum=273;break;
 case 11:sum=304;break;
 case 12:sum=334;break;
 default:printf("data error");break;
}
sum=sum+day;  /*再加上某天的天数*/
 if(year%400==0||(year%4==0&&year%100!=0))/*判断是不是闰年*/
  leap=1;
 else
  leap=0;
if(leap==1&&month>2)/*如果是闰年且月份大于2,总天数应该加一天*/
sum++;
printf("it is the %dth day.",sum);}

特别要注意的是,程序中还加入了对闰年的判断。如果是闰年且月份大于 2,总天数就需要加一天。

sum=sum+day;  /*再加上某天的天数*/
 if(year%400==0||(year%4==0&&year%100!=0))/*判断是不是闰年*/
  leap=1;
 else
  leap=0;
if(leap==1&&month>2)/*如果是闰年且月份大于2,总天数应该加一天*/
sum++;
printf("it is the %dth day.",sum);}

通过这个,我们可以很方便地知道任何一天是这一年的第几天。这不仅在日常生活中可能会有所帮助,对于学习编程的朋友来说,也是一个很好的示例。

希望大家会喜欢这个,如果有任何问题或者建议,欢迎在评论区留言交流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

发财糕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值