首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

同是对double型的正数向下取整,floor和(int)什么区别?解决方法

2012-05-27 
同是对double型的正数向下取整,floor和(int)什么区别?为什么如下的两个程序,一个是WA,一个是AC?C/C++ code

同是对double型的正数向下取整,floor和(int)什么区别?
为什么如下的两个程序,一个是WA,一个是AC?

C/C++ code
// WA代码#include <iostream>#include <cmath>using namespace std;int main(){    double s,m;    int n;    cin >> n;    for (int i=1;i<=n;i++)    {        cin >> m;        s=0;        if (m==0)            cout << "1" << endl;        else        {            for (double k=1;k<=m;k++)                s+=log10(k);            cout << floor(s)+1 << endl;        }    }    return 0;}//------------------------//AC代码#include <iostream>#include <cmath>using namespace std;int main(){    double s,m;    int n;    cin >> n;    for (int i=1;i<=n;i++)    {        cin >> m;        s=0;        if (m==0)            cout << "1" << endl;        else        {            for (double k=1;k<=m;k++)                s+=log10(k);            cout << (int) s+1 << endl;        }    }    return 0;}


[解决办法]
floor(...)是函数调用,而(int)...是语句。
floor函数返回的是一个double类型,而(int)得到的数据类型就是int。

热点排行