C++做题中遇到的小细节和一些算法笔记

最近做题的时候遇到不少小Bug,也收获了很多小细节知识还有几个小算法,写在这里记录分享一下。


一些小细节

  1. 求余运算% 是不能用在float和double这些非整形变量中的。

  2. 1/2的结果是0 但是 1.0/2的结果是0.5

运行情况

可以看到,整形求商的结果还是整形,浮点型求商是浮点型,另外我用了c来排除一下小数点的影响,其实真正影响结果的是数据的类型。

3.在声明一个变量的时候最好能够初始化它,否则系统会随便给他分配一个空间,这个变量的值也可能是随机的。


183473690.jpg
183473690.jpg

#include <iostream>
using namespace std;
int main(){
int a;
float b;
double c;
cout<<a<<endl;
cout<<b<<endl;
cout<<c<<endl;
return 0;
}
在自己的机子上测试


测试结果
测试结果

所以建议能够对每个变量在声明的时候进行初始化。

简单的几个算法和代码

  1. 保留两位小数
    C的写法 printf(%.nf); n是保留的小数个数
    C++的写法目前用这一种
    (1)添加<iomanip>头文件
    (2)在输出的时候加上setprecision(n)函数 其中n是保留的小数个数
    例:int a = 3.14159; cout<<setprecision(2)<<fixed<<a<<endl;
    2.提取整数的每一位——求余运算
    假如有一个数字12345 要提取每一位数字 有如下思路
    12345%10 = 5; 得到最后一位 然后想办法找倒数第二位
    (12345/10)%10 = 4;
    (12345/100)%10 = 3; //以此类推 得到每一位
    3.处理到文件末尾是什么鬼
    相信很多刚开始做题的人会有这个疑问。OK 来解答一下
    在A+B问题中 有一段示例代码,就是处理到文件末尾的关键。
    QQ截图20160920105348.png
    QQ截图20160920105348.png

    这一段代码原意是每输入两个数,就输出两数之和。
    用while()来做这个处理到文件末尾 判断条件是cin>>a>>b
    如果理解了这个while()语句 我们还可以用for语句写这个处理到文件末尾
    for(;cin>>a>>b;)
    不加任何判断参数,只加一个结束循环的条件cin>>a>>b就能达到这个效果。

OK,就是这些了。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • //出自51博客:www.Amanda0928.51.com 第一章 一、选择题 1.B; (typedef ,t...
    Damongggggg阅读 11,170评论 0 1
  • 1. 流 流:数据从一个对象到另一个对象的传输。 功能:标准输入输出+文件处理 分类含义文本流一串ASCII字符二...
    jdzhangxin阅读 1,428评论 0 4
  • 第一章 计算机与C++编程简介 C++程序6个阶段编程 ->预处理->编译->连接->装入->执行1.程序在编译器...
    rogertan30阅读 3,984评论 0 1
  • 基本概念 1a general-purpose programming language用于创建计算机程序。艺术类...
    伍帆阅读 1,352评论 0 1
  • 题目类型 a.C++与C差异(1-18) 1.C和C++中struct有什么区别? C没有Protection行为...
    阿面a阅读 7,707评论 0 10