【c语言】(switch)输入年月日,计算输出这一天是该年第几天

系统管理员 2022-04-13 10:05 1139阅读 0赞

题目:

输入年,月,日,计算输出这一天是该年第几天。注:需要考虑是否 是闰年的情形,闰年2月为29天否则为28天。
提示:用switch-case控 制结构。

思路分析:

  1. 判断输入的月份,日期是否正常
  2. 判断是闰年还是平年,用leap单独存2月的天数
  3. switch结构不用break时可以连续运行,正好用在算天数上,从大的月份加到小的月份
    (记得存入的整月比输入月份小一)
  4. 整数月份的天数加上零头即为总天数

代码实现:

  1. #include<stdio.h>
  2. int main()
  3. {
  4. int year = 0, month = 0, day = 0, leap = 0, dayth = 0;
  5. printf("Input year: ");
  6. scanf("%d",&year);
  7. printf("Input month: ");
  8. scanf("%d",&month);
  9. printf("Input day: ");
  10. scanf("%d",&day);
  11. if(month > 12 || month < 1)
  12. {
  13. printf("year out of limit\n");
  14. }
  15. if(day > 31 || day < 1)
  16. {
  17. printf(" month out of limit\n");
  18. }
  19. if(year%4 == 0 && year%100 != 0 || year%400 ==0)
  20. {
  21. leap = 29;
  22. }
  23. else
  24. {
  25. leap = 28;
  26. }
  27. month = month - 1;
  28. switch(month)
  29. {
  30. case 11 : dayth += 30;
  31. case 10 : dayth += 31;
  32. case 9 : dayth += 30;
  33. case 8 : dayth += 31;
  34. case 7 : dayth += 31;
  35. case 6 : dayth += 30;
  36. case 5 : dayth += 31;
  37. case 4 : dayth += 30;
  38. case 3 : dayth += 31;
  39. case 2 : dayth += leap;
  40. case 1 : dayth += 31;
  41. }
  42. dayth += day;
  43. printf("It's the %dth day of year %d'",dayth,year);
  44. return 0;
  45. }

" class="reference-link">运行结果:在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,1139人围观)

还没有评论,来说两句吧...

相关阅读