1. 首页 > 科技

这个sin函数哪里有问题呢,fact(n)是阶乘函数? 定义函数fact n 计算n的阶乘

这个sin函数哪里有问题呢,fact(n)是阶乘函数?定义函数fact n 计算n的阶乘

求阶乘问题。要求定义函数fact(n)计算n!,主函数中输入一个正整数n,输出n!要求函数fact(n)分别采用递归…

#include "stdio.h"

double fact(int n)

{

double res = 1.0;

int i;

if(n==1)

return 1.0;

for(i=2; i<=n; i++)

res *= i;

return res;

}

void main()

{

int n;

int i;

printf("input a number : ");

scanf("%d", &n);

for(i=1; i<=n; i++)

printf("%d! = %lf\n", i, fact(i));

}

谁帮我看看这个C语言程序哪里有错误?题目:用递归调用编写计算阶乘n!的函数fact()。 求n!

return是函数返回值语句,作用是返回调用该函数地方。在函数体内应该只有一个return对应函数调用的位置,而且reutrn语句后面那()里应该是要返回的表达式而不是常量,你这有两个return都是返回数值常量1从而导致错误

#include <stdio.h>

void main()

{ int m;

printf(“Enter a number: ” );

scanf(“%d”, &m);

printf(“%d! = %d\n”, m, fact(m));

}

fact(int n)

{

int result; /*定义result*/

if(n==1||n==0) result=1;

else result = fact(n-1)*n; /* 递归调用 */

return (result); /*返回值为result*/

}

定义函数fact(n)计算n的阶乘,函数返回值类型是double;定义函数cal(x,n)计算x^n/n!

void main()
{
double cal(double a,int b); //这两行提到main函数外去
double fact(int c);
//如下

double cal(double a,int b);

double fact(int c);

void main()

{

scanf("%lf%d",&x,&n);因为是double的,所以用lf

double i,j=0;

int k; //double是没有++的,只有char,int,long才有
for(k=0;k<=b;k++)

c++编程:定义函数fact(n),返回值是n的阶乘, 调用函数fact计算1 + 1/2! +....+ 1/n!

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

#include<stdio.h>

intfact(intn)

{

 if(n <= 1)

  return1;

 returnfact(n-1)*n;

}

intmain()

 inti;

 intn;

 floatsum = 0.0;

 scanf("%d", &n);

 for(i = 1; i <= n; ++i)

 {

  sum += 1.0f/fact(i);

 }

 printf("%f\n", sum);

 return0;

}