c语言编程求阶乘,请高手帮忙改下错!

[复制链接]
查看11 | 回复0 | 2009-1-30 06:28:38 | 显示全部楼层 |阅读模式
我编的求阶乘程序,为什么老是说有错,请高手帮忙改一下错!#include<stdio.h>float g(int n) { int i=1; float y=1; if (n==0) y=1;
else for(i=1;i<=n;i++)y*=i; return(y); }main() { while (1) { int a;
printf ("please input a number: n=");
scanf ("%d",&a);
if (a<0) printf("error!");
else printf ("%d!=%f\\n",a,g(a));
printf("Press any key to continue...");
} }

                                                                                                1.求阶乘的g函数输入是个整数 输出肯定也是个整数啦~然后函数体里面可以直接用递归来算了,不用再做个循环了,那样写太麻烦了啊,代码不好看。2.主函数里面的while循环不知道是干什么的,我去掉了。输出结果的地方对应函数返回类型改了下。就没别的问题了~#include<stdio.h> int g(int n) {        if (n==0)                return 1;        else return n*g(n-1); } main() {        int a;         printf ("please input a number: n=");         scanf ("%d",&a);         if (a<0)                printf("error!");        else                printf ("%d! = %d\\n",a,g(a));         printf("Press any key to continue..."); }                                       
提问者对答案的评价:
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行