2021-06-11刷题笔记

简介: 2021-06-11刷题笔记

1、

问题描述:

描述

输入一个人的出生日期(包括年月日),将该生日中的年、月、日分别输出。

输入描述:

输入只有一行,出生日期,包括年月日,年月日之间的数字没有分隔符。

输出描述:

三行,第一行为出生年份,第二行为出生月份,第三行为出生日期。输出时如果月份或天数为1位数,需要在1位数前面补0。

——————————————————————————————————————

我自己是这样写的,比较麻烦

image.png

看了题解才发现可以这样image.png

原因分析:

考查scanf的输入格式控制与输出,可相见本题的提示。

通过scanf函数的%m格式控制可以指定输入域宽,输入数据域宽(列数),按此宽度截取所需数据;通过printf函数的%0格式控制符,输出数值时指定左面不使用的空位置自动填0。


2、

问题描述:

BoBo教KiKi字符常量或字符变量表示的字符在内存中以ASCII码形式存储。BoBo出了一个问题给KiKi,转换以下ASCII码为对应字符并输出他们。


73, 32, 99, 97, 110, 32, 100, 111, 32, 105, 116 , 33

——————————————————————————————————————

我用的是循环的方式用%c输出

image.png

看了题解才发现可以直接输出,用%s

image.png

原因分析:

字符数组是可以用这种方式输出的,因为数组名即代表首地址,数组是一块连续的内存空间,所以能直接输出.如果是其他类型的数组则输出的是一个地址.

因为C和C++不进行数组的边界检查,数组在内存中存放的只是所有数组元素的值,而不存在一个地方可以表示数组的大小.所以cout函数没法知道该输出多少个元素。

而字符串则不同,它有一个’\0’用来表示字符串结束,cout看到’\0’就知道输出结束了.

可能你想问,为什么别的类型不也弄个类似于’\0’的结束符呢.那我就反问你,你认为哪个值用来做结束符合适?字符串可以用’\0’来表示结束,是因为’\0’这个值就是专门用来表示字符串结束的,对于其他类型,比如整数,你能说用0或-1来专门表示数据结束么。


相关文章
|
存储 算法 C语言
日常刷题篇(入门)
我从简单到难,一起走上漫漫刷题路! 我会持续在我的博客中更新我每天刷题的内容! 相互交流!
日常刷题篇(入门)
我从简单到难,一起走上漫漫刷题路! 我会持续在我的博客中更新我每天刷题的内容! 相互交流!
|
前端开发 JavaScript 索引
牛客前端宝典——刷题 ##Day11
🏆编程就像我们平常做题一样,如果只是一味的学习不去做题的话所得到的效果微乎其微。
111 0
牛客前端宝典——刷题 ##Day11
|
文字识别 前端开发 开发者
牛客前端宝典——刷题 ##Day5
🏆编程就像我们平常做题一样,如果只是一味的学习不去做题的话所得到的效果微乎其微。
125 0
牛客前端宝典——刷题 ##Day5
|
JavaScript 前端开发 索引
牛客前端宝典——刷题 ##Day10
🏆编程就像我们平常做题一样,如果只是一味的学习不去做题的话所得到的效果微乎其微。
188 0
牛客前端宝典——刷题 ##Day10
|
前端开发 JavaScript
牛客前端宝典——刷题 ##Day9
🏆编程就像我们平常做题一样,如果只是一味的学习不去做题的话所得到的效果微乎其微。
138 0
牛客前端宝典——刷题 ##Day9