C语言刷题随记 —— 判断哪一天


C语言刷题随记 —— 判断哪一天_数据结构

文章目录

  • ​​题目​​
  • ​​1. 题目描述​​
  • ​​2. 程序分析​​
  • ​​思路​​
  • ​​题解​​

题目

1. 题目描述

输入某年某月某日,判断这一天是这一年的第几天?

C语言刷题随记 —— 判断哪一天_算法_02

2. 程序分析

以 3 月 5 日为例,应该先把前两个月的加起来,然后再加上 5 天即本年的第几天,特殊情况,闰年且输入月份大于 3 时需考虑多加一天。

思路

可以使用三个变量存储年、月、日,然后用 ​​scanf函数​​​ 输入几个变量,然后使用 ​​switch语句​​ 对 month 进行判断累计天数,用 if语句判断是闰年还是平年,最后根据年份减去天数即可。

题解

#include <stdio.h>

int 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);

return 0;
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.

C语言刷题随记 —— 判断哪一天_c语言_03


posted @ 2022-12-28 11:34  繁依Fanyi  阅读(8)  评论(0)    收藏  举报  来源