用函数 编阶乘, 比如要求(5!)/(3!+4!)的值#include<stdio.h>
第1个回答 2019-08-11
我这个程序是按照你后面问上面那位同志的那个问题接着的啊。也就是你所写的那个程序:这个顺序没有什么讲究,可以在前可以在后。你程序存在几种错误:
1,
函数类型。
由于是你那得到的是一个双精度,所以Fact函数要定义成double
型,
不然
结果会错误,因为
两个int类型的值运算的值只能是int
比如
5 /4
结果就是1
了,而不是1.25
2.在那个自定义的函数里你的s没有定义,
要定义下啊。 我把完整的写下,你自己看吧。 #include<stdio.h>
double
Fact(int
n);main()
{
double
s;
int
a,b,c;scanf("%d
%d
%d",&a,&b,&c);
s=Fact(a)/(Fact(b)+Fact(c));
printf("%f",s);
}
double
Fact(int
n)
{
int
i;
double
s;
if(n==0)
return
1;
for(i=1;i<=n;i++)
s*=i;
return
s;
}
1,
函数类型。
由于是你那得到的是一个双精度,所以Fact函数要定义成double
型,
不然
结果会错误,因为
两个int类型的值运算的值只能是int
比如
5 /4
结果就是1
了,而不是1.25
2.在那个自定义的函数里你的s没有定义,
要定义下啊。 我把完整的写下,你自己看吧。 #include<stdio.h>
double
Fact(int
n);main()
{
double
s;
int
a,b,c;scanf("%d
%d
%d",&a,&b,&c);
s=Fact(a)/(Fact(b)+Fact(c));
printf("%f",s);
}
double
Fact(int
n)
{
int
i;
double
s;
if(n==0)
return
1;
for(i=1;i<=n;i++)
s*=i;
return
s;
}