用数组取代复杂分支结构。

用数组取代复杂分支结构

题目:已知2012年1月25日是周三,编写一个程序,输入用“年/月/日”表示的一个2012年1月25日之后的日期,输出该日期的周几(星期天输出0)。
输入示范:2015/11/02
输出示范:
1

分析:因为2012年1月25日是周三,所以2012年1月22日是周天,可以从22日开始,求出来的天数除以7的余数,肯定就是周几,比如求出来余数为4,肯定就是周天之后的第四天,即周四。

#include<stdio.h>

int monthdays[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};//设置好每个月的天数。
int main()
{
	int year,month,date;
	int days;
	scanf("%d/%d/%d",&year,&month,&date);
	int i;//循环用的变量。 
	for(i=2012;i<year;i++)//这个循环先求出从2012年到目标年份的1月1日 之前有多少天。
	{
		if(i%4==0&&i%100!=0||i%400==0)
		{
			days+=366;
		}
		else  days+=365;
	}
	for(i=1;i<month;i++)
	{
		days+=monthdays[i];
	}
	days=days+date-22;
	printf("这一天是周%d\n",days%7);

	return 0;
}

DEV C++亲测可以。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值