ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

C语言编程100题——第四题

2022-04-10 02:03:07  阅读:139  来源: 互联网

标签:30 31 编程 year month printf 100 C语言 day


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

本程序评价,本人觉得本程序过于繁杂。这是在自学 C Primer Plus过程写的,等自学完了之后,会用其他方法来优化。

  1 /*程序4:输入某年某月某日,判断这一天是这一年的第几天? */
  2 
  3 #include<stdio.h>
  4 #include<conio.h>
  5 
  6 void main()
  7 {
  8     int year,month,day,number;
  9     REDO: 
 10     printf("输入年月日\"年-月-日\",然后按enter下一步\n");
 11     scanf("%d-%d-%d",&year,&month,&day);
 12     if(month<=12&&month>=1&&day>=1&&day<=31)
 13     {
 14          if(year%400==0||(year%4==0&&year%100!=0))       
 15         {
 16             if(month==1)
 17             {
 18                 printf("这一天是%d年中的第%d天\n",year,day);
 19             }
 20             else if(month==2)
 21             {
 22                 printf("这一天是%d年中的第%d天\n",year,day+31);
 23             }
 24             else if(month>2)
 25             {
 26                 if(month<=7&&month%2==0)
 27                 {
 28                     day=month/2*31+day+(month/2-1)*30-1;
 29                     printf("这一天是%d年中的第%d天\n",year,day);
 30                 }
 31                 else if (month<=7&&month%2==1)
 32                 {
 33                     day=(month-1)/2*31+(month-1)/2*30+day-1;
 34                     printf("这一天是%d年中的第%d天\n",year,day);
 35                 }
 36                 if (month>7&&month%2==0)
 37                 {
 38                     day=(month-8)/2*31+(month-8)/2*30+day;
 39                     day=day+31+29+31+30+31+30+31;
 40                     printf("这一天是%d年中的第%d天\n",year,day);
 41                 }
 42                 else if(month>7&&month%2==1)
 43                 {
 44                     if(month==9)
 45                     {
 46                         day=31+day;
 47                     }
 48                     else if(month==11)
 49                     {
 50                         day=31+30+31+day;
 51                     }
 52                     day=day+31+29+31+30+31+30+31;
 53                     printf("这一天是%d年中的第%d天\n",year,day);
 54                 }
 55             }
 56         }
 57         else
 58         {
 59             if(month==1)
 60             {
 61                 printf("这一天是%d年中的第%d天\n",year,day);
 62             }
 63             else if(month==2)
 64             {
 65                  printf("这一天是%d年中的第%d天\n",year,day+31);
 66             }
 67             else if(month>2)
 68             {
 69                 if(month<=7&&month%2==0)
 70                 {
 71                     day=month/2*31+day+(month/2-1)*30-2;
 72                     printf("这一天是%d年中的第%d天\n",year,day);
 73                 }
 74                 else if (month<=7&&month%2==1)
 75                 {
 76                     day=(month-1)/2*31+(month-1)/2*30+day-2;
 77                     printf("这一天是%d年中的第%d天\n",year,day);
 78                 }
 79                 if (month>7&&month%2==0)
 80                 {
 81                     day=(month-8)/2*31+(month-8)/2*30+day;
 82                     day=day+31+28+31+30+31+30+31;
 83                     printf("这一天是%d年中的第%d天\n",year,day);
 84                 }
 85                 else if(month>7&&month%2==1)
 86                 {
 87                     if(month==9)
 88                     {
 89                         day=31+day;
 90                     }
 91                     else if(month==11)
 92                     {
 93                         day=31+30+31+day;
 94                     }
 95                     day=day+31+28+31+30+31+30+31;
 96                     printf("这一天是%d年中的第%d天\n",year,day);
 97                 }
 98             }
 99         }
100     }
101     else
102     {
103         printf("输入年月日有误或者输入的格式不对,请重新运行输入");
104         goto REDO;
105     }
106     getch();
107 }

 

标签:30,31,编程,year,month,printf,100,C语言,day
来源: https://www.cnblogs.com/fqfq/p/16124550.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有