jh997 发表于 2021-3-14 16:17:58

输入负数是 结果显示有问题

求n!
# include<stdio.h>
int main()
{
        int fac (int n);
        int n,m;
        printf("input number:\n");
        scanf("%d",&n);
        m=fac(n);
        printf(" %d!=%d\n",n,m);
        return 0;
}
int fac (int n)
{
        int s;
        if(n<0)
                printf(" n<0, data error!!!\n");
        else if(n==0||n==1)
                s=1;
        else
                s=n*fac(n-1);
        return s;
       
}

wp231957 发表于 2021-3-14 18:05:22

如果不是为了练习递归算法
这个题目直接写远比递归简单明了

baige 发表于 2021-3-14 20:53:14

#include<stdio.h>
#include <stdlib.h>

int main() {
        int fac (int n);
        int n,m;
        printf("input number:\n");
        scanf("%d",&n);
        m=fac(n);
        printf(" %d!=%d\n",n,m);
        return 0;
}
int fac (int n) {
        int s;
        if(n<0){
                printf(" n<0, data error!!!\n");
                exit(0);
        }
        else if(n==0||n==1)
                s=1;
        else
                s=n*fac(n-1);
        return s;

}
页: [1]
查看完整版本: 输入负数是 结果显示有问题