用c语言写一个程序求N的阶乘(N<20),以双精度浮点型储存并输出,为什么我这个不行啊?急求,在线等。

#include<stdio.h>
#include<stdlib.h>
using namespace std;
int main()
{
int n;
double s;
scanf("%f",&n,&s);
for(n=1;n<20;s=1)
{
s=s*n;
n++;
}
printf("n!=%f\n",&s);
system("pause");
return 0;
}

int main()
{
int n,i ;//增加一个循环变量
double s;
//scanf("%f",&n,&s); 自己比较下一行,看错在哪里
scanf("%d" , &n) ;
//for(n=1;n<20;s=1)
for( i=1,s=1;i<=n;i++ ) //1...20要循环20次 s的初值是1
{
s=s*i;
}
//printf("n!=%f\n",&s);
printf("n!=%lf\n",s);

system("pause");
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-23
#include<stdio.h>
#include<stdlib.h>
using namespace std;
int main(){
int n;//阶乘数
double s;//阶乘乘积
// scanf("%f", &n, &s);
scanf("%d", &n);//接收阶乘数
if (n>0 && n<20) {//判断阶乘数
printf("Your number is %d\nIt's must between 0 to 20", &n);
return 0;
}
// for(n=1;n<20;s=1){
s = 1;//初始化
//循环求阶乘
for(int i=1; i<n; i++){
s=s*i;
// n++;
}
// printf("n!=%f\n",&s);
//输入阶乘积 lf表示double类型 f表示folat类型
printf("n!=%lf\n",&s);
system("pause");
return 0;
}
第2个回答  2013-03-23
for(n=1;n<20;s=1) 循环19次 n的初始值应设为0
第3个回答  2013-03-23
你这是求得19的阶层
相似回答