1. 题目:输入某年某月某日,判断这一天是这一年的第几天?
    2. 程序分析:以35日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。
    1. #include <stdio.h>
    2. #include <stdlib.h>
    3. int main(void)
    4. {
    5. int day, month, year,leap;
    6. int sum = 0;
    7. printf("\n请输入年,月,日,格式为:年,月,日 (2020,12,10)\n");//格式为:2021,2,18
    8. scanf("%d,%d,%d", &year, &month, &day);
    9. switch (month) //先计算某月以前月份的总天数
    10. {
    11. case 1:
    12. sum = 0;
    13. break;
    14. case 2:
    15. sum = 31;
    16. break;
    17. case 3:
    18. sum = 59; //平年2月份28天
    19. break;
    20. case 4:
    21. sum = 90;
    22. break;
    23. case 5:
    24. sum = 120;
    25. break;
    26. case 6:
    27. sum = 151;
    28. break;
    29. case 7:
    30. sum = 181;
    31. break;
    32. case 8:
    33. sum = 212;
    34. break;
    35. case 9:
    36. sum = 243;
    37. break;
    38. case 10:
    39. sum = 273;
    40. break;
    41. case 11:
    42. sum = 304;
    43. break;
    44. case 12:
    45. sum = 334;
    46. break;
    47. default:
    48. printf("data error");
    49. break;
    50. }
    51. sum = sum + day; //再加上某天的天数
    52. if(year%400==0 || (year%4==0&&year%100!=0)){ //判断是不是闰年
    53. leap = 1;
    54. }else{
    55. leap = 0;
    56. }
    57. if(leap==1&&month>2){ //如果是闰年且月份大于2,总天数应该加一天
    58. sum++;
    59. }
    60. printf("这是这一年的第%d天\n", sum);
    61. }