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

有个比较容易的c++有关问题,有点细节不知如何弄

2012-05-22 
有个比较容易的c++问题,有点细节不知怎么弄求n的阶乘#includeiostreamusing namespace stdint main(){i

有个比较容易的c++问题,有点细节不知怎么弄
求n的阶乘
#include<iostream>
using namespace std;
int main(){
int s,i,n;
s=1;
i=1;
cout<<"input n:";
cin>>n;
if(n<0||n%1!=0)
cout<<"输入错误!";
else{
while(i<=n){
s=s*i;
i++;
}
cout<<"n!="<<s<<endl;
}
return 0;
}
想将n不为正整数的正数纳入“输入错误”的情况,没有成功。是因为定义n的数据类型缘故吗?怎么改正?

[解决办法]
if(n <= 0)
[解决办法]
后面一个稍微好些,利用强制转换,看有小数部分没有。

C/C++ code
#include<iostream>using namespace std;int main(){    int s=1,i=1;    double n = 0.0;    cout<<"input n:";    cin>>n;    if(n<0 || n-(int)n!=0)    {        cout<<"输入错误!"<<endl;    }        else    {        while(i<=n)        {            s=s*i;            i++;        }    cout<<"n!="<<s<<endl;    }    return 0;} 

热点排行
Bad Request.