【c語言】(switch)輸入年月日,計算輸出這一天是該年第幾天

題目:

輸入年,月,日,計算輸出這一天是該年第幾天。注:需要考慮是否 是閏年的情形,閏年2月爲29天否則爲28天。
提示:用switch-case控 制結構。

思路分析:

  1. 判斷輸入的月份,日期是否正常

  2. 判斷是閏年還是平年,用leap單獨存2月的天數

  3. switch結構不用break時可以連續運行,正好用在算天數上,從大的月份加到小的月份
    (記得存入的整月比輸入月份小一)

  4. 整數月份的天數加上零頭即爲總天數

代碼實現:

#include<stdio.h>
int main()
{
		int year = 0, month = 0, day = 0, leap = 0, dayth = 0;
		printf("Input year: ");
		scanf("%d",&year);
		printf("Input month: ");
		scanf("%d",&month);
		printf("Input day: ");
		scanf("%d",&day);
		if(month > 12 || month < 1)
		{
			printf("year out of limit\n");
		}
		if(day > 31 || day < 1)
		{
			printf(" month out of limit\n");
		}
		if(year%4 == 0 && year%100 != 0 || year%400 ==0)
		{
			leap = 29;
		}
		else
		{
			leap = 28;
		}
		month = month - 1;
		switch(month)
		{
			case 11 : dayth += 30;
			case 10 : dayth += 31;
			case  9 : dayth += 30;
			case  8 : dayth += 31;
			case  7 : dayth += 31;
			case  6 : dayth += 30;
			case  5 : dayth += 31;
			case  4 : dayth += 30;
			case  3 : dayth += 31;
			case  2 : dayth += leap;
			case  1 : dayth += 31;
		}
		dayth += day;
		printf("It's the %dth day of year %d'",dayth,year);
		return 0;
} 

運行結果:在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章