您的位置:首页 > 编程语言 > C语言/C++

(输入年月日,输出是这一年的第几天)c语言程序

2014-09-15 23:03 399 查看
做为一个学c语言的新手,今天学习了switch语句。当时老师说case语句后面如果不跟break;会按照顺序执行,而这种结构也有它的优点,通过今天对这个程序的编写,也对switch有了全新的认识;

/*

请分别输入年月日三个数值,计算出这是这一年的第几天?

(提示:要考虑闰年和2月的情况)

*/

#include <stdio.h>

void main()

{

int year=0,month=0,day=0,i=0,sum=0;

while(1)

{

printf("请输入年份:");

scanf("%d",&year);

printf("请输入月份:");

scanf("%d",&month);

printf("请输入日期:");

scanf("%d",&day);

i=0; //i变量是为了控制月和日的格式是否输入正确;

switch(month)
//判断每个月的日期是否输入正确;

{

case 1:

case 3:

case 5:

case 7:

case 8:

case 10:

case 12:

if(day>0&&day<=31)

{

i=1;

}

break;

case 4:

case 6:

case 9:

case 11:

if(day>0&&day<=30)

{

i=1;

}

break;

case 2:
//2月闰年可以输入29日;

if((year%4==0&&year%100!=0)||year%400==0)

{

if(day>0&&day<=29)

{

i=1;

}

}

else

{

if(day>0&&day<=28)

{

i=1;

}

}

break;

default:
//如果输入不是1-12月份,那么月份输入有误;

i=0;

break;

}

if(i) //如果i变量为1,那么输入正确,否则重新输入;

{

break;

}

else

{

printf("请输入正确的年月日!!!\n");

}

}

i=0;

switch(month)
//把每个月的日期累加;

{

case 12:

i=i+30;

case 11:

i=i+31;

case 10:

i=i+30;

case 9:

i=i+31;

case 8:

i=i+31;

case 7:

i=i+30;

case 6:

i=i+31;

case 5:

i=i+30;

case 4:

i=i+31;

case 3:

if((year%4==0&&year%100!=0)||year%400==0)

{

i=i+29;

}

else

{

i=i+28;

}

case 2:

i=i+31;

case 1:

;

}

sum=i+day;

printf("%d年%d月%d日是%d年的第%d天\n!",year,month,day,year,sum);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: