题面:

输入某一年的第几天,计算并输出它是这一年的第几月第几日。

输入格式:

输入年份和第几天,scanf语句中的格式控制串为: "%d %d"

输出格式:

输出是月份和日期,中间用空格隔开,printf中的格式控制串为 "%d\n"

输入样例:

2018 254

输出样例:

9 11

来自Dwl同学的思路:

可以说,很直接,很暴力(〃ノωノ) 我好喜欢~(bushi

他的思路很清晰,就是判断你是哪个月,就直接把日期加起来再加上日。然而我定睛一看,你咋就写了个判断闰年的?Dwl:“再写个else不就行了,彩笔。。”

。。。

≡ ∧_∧  ∧_∧ 
≡(#`Д´)⊃ ;;;)Д`)
≡/つ  /  ⊂ ⊂/ 
首先,套这么多if不是不行,但完全可以使用循环代替,只要把其中的每个月的天数创建一个数组就可以了,此题的关键就是想到这一点,之后的问题也就迎刃而解了:关于判断是否为闰年,剋直接改变数组中二月份的值,从而避免了D同学想法中结构和语句的冗余及复杂,而能更加简洁并易于检验,具体代码如下:

#include<stdio.h>
int main(){int i,year,day,month[12]={31,28,31,30,31,30,31,31,30,31,30,31};printf("%d %d",&year,&day);if(year%4==0&&year%100!=0||year%400==0)month[1]=29;for(i=0; ;i++){if(day<=month[i])break;day-=month[i];}printf("%d %d",i+1,day);return 0;
}

写到这里,我不禁想到不久之前刷到过的一道题,题目与此题不甚相同,甚至可以说是相反,却又有着异曲同工之妙。

题面:

给定一个日期,数据格式为YYYY-MM-DD,输出这个日期是该年的第几天。

提示:一年十二个月每个月的天数可以作为一维数组的元素

输入格式:

输入代表这个日期的年月日信息,scanf语句中的格式控制串为: "%d-%d-%d"

输出格式:

输出是当年的第几天 printf中的格式控制串为 "%d\n"

输入样例:

2018-9-11

输出样例:

254

思路:

这道题可以说是上面那道题的逆向推导,反之亦然,不过结构确实要简单一些(有一说一加法题会比减法题容易一些,不过上面那道题可能更容易想到用每个月的天数作为数组),直接上代码:

#include<stdio.h>
int main()
{int month[]={31,28,31,30,31,30,31,31,30,31,30,31};int y,m,d,sum=0;scanf("%d-%d-%d",&y,&m,&d);if(y%4==0&&y%100!=0||y%400==0)month[1]=29;for(int i=0;i<m-1;i++)sum+=month[i];sum+=d;printf("%d\n",sum);return 0;
}

数组的知识浩如烟海,学的越多,反而会觉得你懂得越少,而会生发出对知识更加狂热的追求,这也许就是学习的美丽。今天我们也许只掌握冰山一角,但相信不懈努力的我们终有登上山巅的一天。ヾ(≧▽≦*)o

C语言:输入某一年的第几天,计算并输出它是这一年的第几月第几日?相关推荐

  1. (c语言)输入两个整数a和n,计算下面表达式的值。Sn=a+aa+aaa+aaaa+.....+aa..aa(n个a)

    (c语言)输入两个整数a和n,计算下面表达式的值.Sn=a+aa+aaa+aaaa+-+aa-aa(n个a) 方法一: #include<stdio.h> #include<stdl ...

  2. 输入三角形的三c语言程序,请问c语言中 从键盘输入三角形的3边 调用三角形面积公式求面积 并输.,C语言编写程序,从键盘输入三角形三条边长(实数),计算并输出...

    导航:网站首页 > 请问c语言中 从键盘输入三角形的3边 调用三角形面积公式求面积 并输.,C语言编写程序,从键盘输入三角形三条边长(实数),计算并输出 请问c语言中 从键盘输入三角形的3边 调 ...

  3. C语言计算级数fun,c语言编程 编写函数fun(),它的功能是:计算和输出下列级数的和....

    用C语言编程,已知f(x)=(1+x^2),编写函数用梯形法计算f(x)在区间[a,b]上的定积分 #includevoidmain(){doublei,j;doublea,b,c=0;printf( ...

  4. C语言练习,利用求阶乘函数Fact(),编程计算并输出从1到n之间所有数的阶乘值。

    利用求阶乘函数Fact(),编程计算并输出从1到n之间所有数的阶乘值. **输入格式要求:"%u" 提示信息:"Input n(n>0):" **输出格式 ...

  5. c语言 计算在10个学生的平均成绩,C语言:编写程序,输入10个学生的成绩数据,计算并输出平均分及低于平均分的学生的人数。...

    #include int main() { int i; float a[10],min,max,avg;//max表示最高分,min表示最低分,avg表示平均分 printf("请输入10 ...

  6. 【C语言】指针:输入某一年的第几天,计算并输出它是这一年的第几月第几天

    #include <stdio.h> #include <stdlib.h>void MonthDay(int year, int yearDay, int *pMonth, ...

  7. 编写程序,输入x的值,按下列公式计算并输出y的值。

    y=            #include<stdio.h> #include<math.h> main() {/*说明要使用的变量x和y*/float x,y;/*输入x的 ...

  8. 2-1输入两个整数num1和num2,计算并输出他们的和、差、积、商与余数

    #include<stdio.h> int main(void) {int num1,num2,sum,difference,product,quotient,remainder;prin ...

  9. c语言输入三个身高输出最高,输入两个人的身高,计算并输出他们的平均身高.(身高以米为单位,最后结果保留两位小数)...

    题目: 输入两个人的身高,计算并输出他们的平均身高.(身高以米为单位,最后结果保留两位小数) 求C语言的编写过程 解答: #include void main () { float a,b; scan ...

最新文章

  1. htpc电脑方案_我终于定稿了客厅HTPC的方案: Matx机箱小喆B3卧倒
  2. empty()、isset()、is_null()的区别
  3. python编程(pdb调试)
  4. java http soap_在Spring中发布SOAP HTTP Webservice - Java杂家 - Blo...
  5. jupyetr notebook添加anaconda虚拟环境内核(tensorflow+pytorch)
  6. java timer 返回值,如何让计时器返回java时间
  7. tp框架操作mysql_Thinkphp框架对数据库的操作(总结)
  8. java表头表体动态返回_JAVA LIST 简单分页 集成EXT4 grid表头动态返回
  9. 帮你免于失业的十大技术
  10. macos 10.15.2 iso镜像网盘下载
  11. Keras:基于Python的深度学习库
  12. 知到python课程答案-知到智慧树_Python数据分析与数据可视化_结课测验答案
  13. Python爬虫之网易云歌单音频爬取(解决urlretrieve爬取文件不能播放问题)
  14. C语言实现搬山游戏,附上代码及解析
  15. Nature子刊:教你零基础开展微生物组数据分析和可视化
  16. 关于帐号因诱导关注违规进行粉丝删除的处理通知
  17. CSS3 transform变形属性、2D变形、3D变形
  18. Day11-面向对象(4)
  19. 网络爬虫学习1 - 使用 requests.get(url) 抓取网页
  20. YonBuilder之单表,主子表的建立

热门文章

  1. 建站之星 自定义html,建站之星如何设伪静态规则?建站之星伪静态设置方法!
  2. 二、大话HTTP协议-HTTP报文结构整体窥探
  3. KILLZONE 2 显示技术详解
  4. 利用谷歌开源工具 sfntly ,修改字体文件制作想要的字体文件
  5. unity 360视频_如何将360视频与Unity集成
  6. android会超过苹果,任正非:华为操作系统要想超越安卓和苹果 不会超过300年
  7. HTTP/2.0 中英文对照
  8. Android拨号器的实现
  9. iOS中.pch文件如何使用
  10. @StateObject和@ObservedObject有什么区别?