分类：电脑/网络-程序设计
问题：c语言编程求阶乘，请高手帮忙改下错！我编的求阶乘程序,为什么老是 
我编的求阶乘,为什么老是说有错,请高手帮忙改一下错!#include<stdio.h>floatg(intn){inti=1;floaty=1;if(n==0)y=1;elsefor(i=1;i<=n;i++)y*=i;return(y);}main(){while(1){inta;printf("pleaseinp ");scanf("%d",&a);if(a<0)printf("error!");elseprintf("%d!=%f\n",a,g(a));printf("Pressanykeytocontinue..."我编的求阶乘,为什么老是说有错,请高手帮忙改一下错!#include<stdio.h>floatg(intn){inti=1;floaty=1;if(n==0)y=1;elsefor(i=1;i<=n;i++)y*=i;return(y);}main(){while(1){inta;printf("pleaseinp ");scanf("%d",&a);if(a<0)printf("error!");elseprintf("%d!=%f\n",a,g(a));printf("Pressanykeytocontinue...");}}
回答：1.求阶乘的g函数输入是个整数输出肯定也是个整数啦~然后函数体里面可以直接用递归来算了,不用再做个循环了,那样写太麻烦了啊,代码不好看。2.主函数里面的while循环不知道是干什么的,我去掉了。输出结果的地方对应函数返回类型改了下。就没别的问题了~#include<stdio.h>intg(intn){if(n==0)return1;elsereturnn*g(n-1);}main(){inta;printf("pleaseinp ");scanf("%d",&a);if(a<0)printf("error!");elseprintf("%d!=%d\n",a,g(a));printf("Pressanykeytocontinue...");}