伦418 2022-05-11 15:43 采纳率: 100%
浏览 46
已结题

C语言递归n!,解决13!计算错误


#include<stdio.h>
int main()
{
    int fac(int n);
    int n;
    int y;
    printf("input an integer number:");
    scanf("%d",&n);
    y=fac(n);
    printf("%d!=%d\n",n,y);
    return 0;
}

int fac(int n)
{
    int f;
    if(n<0)
      printf("n<0,data error!");
    else if(n==0||n==1)
      f=1;
    else f=fac(n-1)*n;
    return(f);
}

计算结果不是预期结果。

img

img

如何将f,y和fac函数定义为float或double型?
谢谢友友的答疑~(^з^)-♡

  • 写回答

1条回答 默认 最新

  • 丨秋水丨 2022-05-11 15:52
    关注

    改成long long就可以了

    
    #include<stdio.h>
    int main()
    {
        long long fac(long long n);
        long long n;
        long long y;
        printf("input an integer number:");
        scanf("%lld", &n);
        y = fac(n);
        printf("%lld!=%lld\n", n, y);
        return 0;
    }
    
    long long fac(long long n)
    {
        long long f;
        if (n < 0)
            printf("n<0,data error!");
        else if (n == 0 || n == 1)
            f = 1;
        else f = fac(n - 1) * n;
        return(f);
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 5月29日
  • 已采纳回答 5月21日
  • 创建了问题 5月11日

悬赏问题

  • ¥15 srs-sip外部服务 webrtc支持H265格式
  • ¥15 在使用abaqus软件中,继承到assembly里的surfaces怎么使用python批量调动
  • ¥15 大一C语言期末考试,求帮助🙏🙏
  • ¥15 ch340驱动未分配COM
  • ¥15 Converting circular structure to JSON
  • ¥30 Hyper-v虚拟机相关问题,求解答。
  • ¥15 TSM320F2808PZA芯片 Bootloader
  • ¥45 谷歌浏览器出现开发者工具无法显示已创建的,但您可以调试已部署的代码。 状态代码 404, net::ERR HTTP RESPONSE CODE FAILURE
  • ¥15 如何解决蓝牙通话音频突发失真问题
  • ¥15 安装opengauss数据库报错