美文网首页
C++做题中遇到的小细节和一些算法笔记

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

作者: iimT | 来源:发表于2016-09-20 11:12 被阅读37次

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


    一些小细节

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

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

    运行情况

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

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


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

    OK,就是这些了。

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/gafoettx.html