当前位置: 代码迷 >> C语言 >> 能否抽出你们仅有的时间来看看我的程序吗?
  详细解决方案

能否抽出你们仅有的时间来看看我的程序吗?

热度:147   发布时间:2005-05-01 09:59:00.0
能否抽出你们仅有的时间来看看我的程序吗?

#include <stdio.h> float fact(int);

void main() { int x; printf("输入一个整数:\n"); scanf("%d",&x); printf("\n结果是:%0.0f\n\n",fact(x)); }

float fact(int n) { float sum=0.0,b; if((n==1)||(n==0)) return 1; for(int j=1;j<=n;j++) { b=n*fact(n-1); sum+=b; } return sum; } 这是一条求1!+2!+3!+。。。。+n!的程序,我不会用递归做,现在就算我做出了,结果也不对,高手可以帮我看看我写的程序吗?我的程序错在哪里?请高手指出!

[此贴子已经被作者于2005-5-1 10:16:57编辑过]

搜索更多相关的解决方案: 时间  

----------------解决方案--------------------------------------------------------

#include <stdio.h> float fact(int);

void main() { int x; printf("输入一个整数:\n"); scanf("%d",&x); printf("\n结果是:%0.0f\n\n",fact(x)); }

float fact(int n) { float sum=0.0; for(int i=1,a=1;i<=n;i++) { a*=i; sum+=a; } return sum; } 这是我用递推做的程序,真心希望有高手用递归做给我看!

[此贴子已经被作者于2005-5-1 10:17:17编辑过]


----------------解决方案--------------------------------------------------------
C语言课本上有递归调用的,看看就可以了.
----------------解决方案--------------------------------------------------------
能否抽出你们仅有的时间来看看我的程序吗?

#include <stdio.h> float fact(int);

void main() { int x; printf("输入一个整数:\n"); scanf("%d",&x); printf("\n结果是:%0.0f\n\n",fact(x)); }

float fact(int n) { float sum=0.0,b; if((n==1)||(n==0)) return 1; for(int j=1;j<=n;j++) { b=n*fact(n-1); sum+=b; } return sum; } 这是一条求1!+2!+3!+。。。。+n!的程序,我不会用递归做,现在就算我做出了,结果也不对,高手可以帮我看看我写的程序吗?我的程序错在哪里?请高手指出 函数里的for循环用错 #include<stdio.h> int f(int); /*f()为求n阶层的函数*/ main() { int i,n ,sum=0; scanf("%d",&n); for(i=n;i>0;i--) sum+=f(i); /*每个阶层的值相加*/ printf("\nsum=%d\n",sum); getch(); } int f(int n) { if(n==1) return 1; else return(n*f(n-1)); } .


----------------解决方案--------------------------------------------------------
你这main函数中printf语句怎么:%0.0f啊.怎么可以这样呢.
----------------解决方案--------------------------------------------------------
  相关解决方案