当前位置: 首页 > news >正文

【C++】C++知识点复习

牛客cpp:牛客网在线编程

2024年4月10日:BC1—>BC8

BC4:浮点数精度保留

问题:不加入fixed输入0.359813,最后得到0.36,并不是强制保留0.360。这种写法会保留小数点后三位精度,但是最后输出会省略掉最后的0不打印。

#include <ios>
#include <iostream>
#include <iomanip>
using namespace std;int main() {float a;cin >> a;cout << fixed <<setprecision(3);cout << a << endl;
}

解决:在设置精度前加入sdt::fixed固定精度。
std::fixed 用于指定浮点数的定点表示法,而 std::setprecision(3) 则设置小数位数为三位。

BC8:字符菱形(for嵌套循环)

之前理解的for循环嵌套,外层循环打印行数,内层循环打印列数有点小瑕疵。没打印空格之前,#是不能占据第一个位置的(并不是一个矩阵!)
内层循环打印列数这句话并不是很准确。进入行之后只对这一行关注即可。

include <iostream>
using namespace std;int main() 
{string str =“#”;for (int i = 0; i < 5; i++) {if(i<3)    // 上半部分{for(int j=0;j<2-i;j++){cout << " ";}for(int k=0;k<2*i+1;k++){cout << str;}cout << endl;}else //下半部分{for(int j=0;j<i-2;j++){cout << " ";}for(int k=0;k<9-2*i;k++){cout << str;}cout <<endl;}}
}

2024年4月10日:BC9—>BC

BC9:字符转ASCII码

强制类型转换

int ascii = static_cast<int>(ch);

BC10:四舍五入

输入:14,99;输出:15

double a;
int b = round(a);

BC12:加入间隔的输入和控制精度输出

问题1:输入信息中有分号和逗号的情况下cin中加入char ch来控制;
问题2:变量类型声明为double,最后控制精度输出无法做到四舍五入。是因为double类型和setprecision不匹配,换位float即可。

输入:17140216;80.845,90.55,100.00
输出:The each subject score of No. 17140216 is 80.85, 90.55, 100.00.

#include <ios>
#include <iostream>
#include <iomanip>
using namespace std;int main() {int id_number;float score1, score2, score3;char ch;cin >> id_number >> ch >> score1 >> ch >> score2 >> ch >> score3;cout << "The each subject score of No. " << id_number<< " is " << fixed << setprecision(2) << score1 << ", " << score2 << ", " <<score3 << "." << endl;
}

BC13:字符串截断

这种题目最好使用字符串,方便截断处理。使用substr函数,参数为开始位置和截取长度。

输入:20130225 输出: year=2013 month=02 date=25

#include <iostream>
using namespace std;int main() {string date;cin >> date;cout << "year=" << date.substr(0, 4) << endl;cout << "month=" << date.substr(4, 2) << endl;cout << "date=" << date.substr(6, 2) << endl;
}

BC14:C语言风格的输入输出

在一行内输入:a=1,b=2。用cin有点难度,但是c语言风格的输入就方便很多。头文件不需要改。

scanf("a=%d,b=%d", &a, &b);

BC15:大小写转换和读取键入的字符

getchar函数专门用于读取键盘键入的字符,还可以用于丢弃Enter键。

#include <iostream>
using namespace std;int main() {char ch;char a;while ((ch = getchar()) != EOF) {getchar();a=tolower(ch);cout << a << endl;}return 0;
}

BC19 对齐

使用iomanip库中的setw()函数,来固定对齐格式,setw() 设置的字段宽度只对下一个输出项起作用。
例如使用setw(8),该函数意味着控制下一个输出的字段宽度为 8 个字符,不足8个长度则前面用空格补充。

#include <iostream>
#include <iomanip>
using namespace std;int main() {int a, b, c;scanf("%d %d %d", &a, &b, &c);cout << a << setw(8) << b << setw(8) << c << endl;
}
http://www.lryc.cn/news/336285.html

相关文章:

  • SpringBoot+Vue,轻松实现网页版人脸登录与精准识别
  • 深入浅出 -- 系统架构之垂直架构
  • 深入浅出 -- 系统架构之微服务架构选型参考图
  • Java 使用 ant.jar 执行 SQL 脚本文件
  • 【随笔】Git 高级篇 -- 快速定位分支 ^|~(二十三)
  • git环境切换
  • hyperf websocket
  • 用Echarts词云数据可视化热词表白​​
  • VUE 实现路由的基本原理
  • Android 11 添加系统属性
  • docker 创建容器过程
  • OSI七层网络攻击行为及防范手段
  • 第100+5步 ChatGPT文献复现:ARIMAX预测肺结核 vol. 5
  • 论文| Convolutional Neural Network-based Place Recognition - 2014
  • 基于微信小程序的自习室预约系统的设计与实现
  • 【机器学习】《机器学习算法竞赛实战》第7章用户画像
  • vue3新手笔记
  • 互联网大厂ssp面经之路:计算机网络part1
  • C语言程序设计每日一练(1)
  • Spring 统一功能处理
  • 【软设】知识点速记2
  • 激光雷达和相机的联合标定工具箱[cam_lidar_calibration]介绍
  • ML.NET(二) 使用机器学习预测表情分析
  • YOLOv9最新改进系列:YOLOv9改进之添加注意力-ContextAggregation,有效涨点!!!
  • 【数据结构】初识数据结构与复杂度总结
  • 子域名是什么?有什么作用?
  • 学习 Rust 的第一天:基础知识
  • 电商技术揭秘七:搜索引擎中的SEO关键词策略与内容优化技术
  • 系统开发实训小组作业week7 —— 优化系统开发计划
  • golang的引用和非引用总结