1、牛客网刷题总结1

1、关于cout输出精度的问题:

因为它输出浮点数时默认输出有效数字位6位,注意有效数字位可不是小数点后六位,这俩是完全不一样。看几个代码掌握它的输出:

2、找找C++里边是否有设置四舍五入的输出设置。

因为在牛客网有道题是将浮点数转为整数,并满足四舍五入,虽然我们可以通过正常程序来实现,但是找找cout的设置看看有没有。

cout<<fixed<<setprecision(0)<<n<<endl; //其中n为浮点数

这样设置那道题是通过的,但是输入14.5的时候,输出的是14,显然那个答案是不严谨的。 但是当前仅当14.5是14,像输入14.5000000001,答案确实15,说明cout底层应该是按照四舍五入的,只是把14.5这种数据归为舍去了。

关于保留小数点四射五五的题还是要掌握算法,我看题型不少。

比如对数据80.845保留小数点后两位,且四舍五入。

我们可以先将80.845*1000=80845,然后对10取模得到个位数,及原来小数点的第三位数,如果它大于等于5,那么十位就加1,既有 (int)(80.845*100)+1=8085,注意强制类型转换是不遵循四舍五入的!!,然后除以100.0,再按两位数打印即可。

3、关于输入问题,C语言输入:

scanf("%4d%2d",&year,&month)表示什么意思,输入数据:20122,表示2012年2月份
意思就是说第一个数据只会在缓冲区取前4位,第二个数据只会在缓冲区取接下来的2位。 这也是scanf函数的一个重要知识点。控制位输入。

但是怎么原样输出呢?

printf("year=%4d\n", year);

printf("month=%02d\n", month);

注意:%0md的意思是,当输出的数据不足m位时,在前面补0。

复习:

printf("%md\n",a);//(m>0)

(m>0),当输出的数据不足m位时,在前面补空格,即在左边补空格,当超过m位时什么都不做

printf("%md\n",a);//(m<0)

(m<0),当输出的数据不足m位时,在右边补空格,当超过m位时,什么都不做

换句话说,在哪边补空格就是看m的正负,其次要看输出的数据位数得小于m才补空格,那怎么记呢?m>0,往左补空格,m>0表示m为正数,往左补空格,因此可以记作:

一个左正蹬,即m为正数时往左补空格。反之往右补空格

而且只有往左补空格时,才会让空格的地方补成0,即 printf("%0md\n",a);//(m>0),左边不再是补空格,而是补充0。

关于字符处理的函数:

islower() -- 判断是否为小写,是,返回非0,不是,返回0

isupper() -- 判断是否为大写,是,返回非0,不是,返回0

tolower()-- 把大写字母转换为小写字母(输入小写字母的话不会变)

toupper()-- 把小写字母转换为大写字母(输入大写字母的话不会变)

相关推荐
啊啊啊啊啊!!!!2 小时前
【c++】stack和queue的接口使用以及底层实现
开发语言·c++
(Charon)4 小时前
【C++】锁与原子操作(四):自旋锁的完整实现与性能优化
c语言·开发语言·c++
ShineWinsu5 小时前
对于Linux:五种IO模型以及非阻塞IO的详细解析
linux·c++·面试·io·阻塞·非阻塞·fcntl
呜喵王阿尔萨斯6 小时前
extern “C“ in C++
c语言·c++·算法
乐观勇敢坚强的老彭6 小时前
C++信奥静态数组和动态数组
数据结构·c++·算法
gumichef7 小时前
第一章:面向对象核心——类和对象深度讲解
开发语言·c++
ao-weilai7 小时前
C++基础:类和对象
开发语言·c++
郝学胜-神的一滴7 小时前
[简化版 GAMES 104] 现代游戏引擎 04:从0到1构建你的游戏世界
c++·游戏·unity·游戏引擎·软件工程·unreal engine
Bryce学亮7 小时前
FileLine,基于 Qt 6 + QML 构建的跨平台文件传输与即时通讯工具
数据库·c++·人工智能·python·qt·github
旖旎夜光7 小时前
LeetCode 991: 坏了的计算器(贪心算法) —— 题解
数据结构·c++·算法·leetcode·贪心算法