zoukankan      html  css  js  c++  java
  • 关于小数

      当输入“/”时,一般都是输出商,不会带小数点。

    比如:2/3=0;9/2=4......都是 A/B=商。但有时,做题时想要保留小数点,我就不知道该怎么办。

    如:一本通中的1072

    我一开始的代码:

     1 #include<iostream>
     2 #include<cstdio>
     3 using namespace std;
     4 int main()
     5 {
     6     int n,a[21][3];
     7     double x,y;
     8     cin>>n;
     9     for(int i=1;i<=n;++i)
    10     {
    11         for(int j=1;j<=2;++j)
    12         cin>>a[i][j];
    13     }
    14     x=a[1][2]/a[1][1];
    15     for(int i=2;i<=n;++i)
    16     {
    17         y=a[i][2]/a[i][1];
    18         if(y-x>0.05)
    19         cout<<"better"<<endl;
    20         else if(x-y>0.05)    cout<<"worse"<<endl;
    21         else    cout<<"same"<<endl;
    22     }
    23     return 0;
    24 }

    结果按给的输入样例输入后,输出全是“same”。之后发现在代码中的想x,y都是整数0。因为“/”只会输出商,不会有小数点。我有上网查了资料,发现若想让“/”除出带小数点的数,可以在运算前加“1.0*”。如:x=1.0*1/2;   x=0.5;我就有改了代码:

     1 #include<iostream>
     2 #include<cstdio>
     3 using namespace std;
     4 int main()
     5 {
     6     int n,a[21][3];
     7     double x,y;
     8     cin>>n;
     9     for(int i=1;i<=n;++i)
    10     {
    11         for(int j=1;j<=2;++j)
    12         cin>>a[i][j];
    13     }
    14     x=1.0*a[1][2]/a[1][1];
    15     for(int i=2;i<=n;++i)
    16     {
    17         y=1.0*a[i][2]/a[i][1];
    18         if(y-x>0.05)
    19         cout<<"better"<<endl;
    20         else if(x-y>0.05)    cout<<"worse"<<endl;
    21         else    cout<<"same"<<endl;
    22     }
    23     return 0;
    24 }

    这样输入后,x,y就是小数了。

    通过这个题的学习,我了解到了如何让“/”不只是整除。

  • 相关阅读:
    写简单游戏,学编程语言-python篇
    RSS阅读器python实现概述
    python简易爬虫来实现自动图片下载
    SQL SERVER 2008 R2 SP3 发布
    动态规划问题总结 (转载)
    typedef with const 联合的说明
    C++ 初始化列表
    C++de构造函数
    排序算法温习
    java中读取properties配置文件用例
  • 原文地址:https://www.cnblogs.com/zkw666/p/12239032.html
Copyright © 2011-2022 走看看