编程训练题:第几天?

方法1:

#include<stdio.h>
int main()
{
	// a为年份;b为月份;c为多少号;day为天数 
	int a,b,c,day;
	// 输入多组日期 
	while(scanf("%d/%d/%d\n",&a,&b,&c)!=EOF)
	{
	 	// 判断该年份是否为闰年 
		if(a%4==0&&a%100!=0||a%400==0)
		{
			if(b==1){day=c;printf("%d\n",day);}
			if(b==2){day=c+31;printf("%d\n",day);}
			if(b==3){day=c+60;printf("%d\n",day);}
			if(b==4){day=c+91;printf("%d\n",day);}
			if(b==5){day=c+121;printf("%d\n",day);}
			if(b==6){day=c+152;printf("%d\n",day);}
			if(b==7){day=c+182;printf("%d\n",day);}
			if(b==8){day=c+213;printf("%d\n",day);}
			if(b==9){day=c+244;printf("%d\n",day);}
			if(b==10){day=c+274;printf("%d\n",day);}
			if(b==11){day=c+305;printf("%d\n",day);}
			if(b==12){day=c+335;printf("%d\n",day);}
		}
		else 
		{
			if(b==1){day=c;printf("%d\n",day);}
			if(b==2){day=c+31;printf("%d\n",day);}
			if(b==3){day=c+59;printf("%d\n",day);}
			if(b==4){day=c+90;printf("%d\n",day);}
			if(b==5){day=c+120;printf("%d\n",day);}
			if(b==6){day=c+151;printf("%d\n",day);}
			if(b==7){day=c+181;printf("%d\n",day);}
			if(b==8){day=c+212;printf("%d\n",day);}
			if(b==9){day=c+243;printf("%d\n",day);}
			if(b==10){day=c+273;printf("%d\n",day);}
			if(b==11){day=c+304;printf("%d\n",day);}
			if(b==12){day=c+334;printf("%d\n",day);}
		}
    }
	return 0;
}

方法2:

#include<stdio.h>
int main()
{
  	// 定义年、月、日 
  	int year,month,day;
  	printf("请输入日期,格式为YYYY/MM/DD\n");
  	// 输入多组日期 
  	while(scanf("%d/%d/%d\n",&year,&month,&day)!=EOF)
  	{
  		// 定义平年的每月天数 
   		int a[]={0,31,28,31,30,31,30,31,31,30,31,30};
   		// 放置一个空的求和容器 
   		int sum=0;
   		// 判断该年是否为闰年,若是则将2月天数替换为29 
   		if((year%400==0)||(year%4==0)&&(year%100!=0))
     		a[2]=29;
     	// 先求月的天数和 
   		for(int i=0;i<month;i++)
    		sum=sum+a[i];
    	// 再加上日的天数 
   		sum=sum+day;
   		printf("是第%d天\n",sum);
  	}
  return 0;
}

运行结果:

在得到第一个结果之后,要输入“ctrl”+“z”,然后回车,即可得到第二个结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

宁静_致远_

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

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

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

打赏作者

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

抵扣说明:

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

余额充值