码迷,mamicode.com
首页 > 其他好文 > 详细

关于小数

时间:2020-01-29 19:52:15      阅读:92      评论:0      收藏:0      [点我收藏+]

标签:div   size   mil   iostream   代码   img   mamicode   运算   输出   

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

比如: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就是小数了。

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

关于小数

标签:div   size   mil   iostream   代码   img   mamicode   运算   输出   

原文地址:https://www.cnblogs.com/zkw666/p/12239032.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!