日暮迟归 2022-10-31 15:26 采纳率: 75%
浏览 13
已结题

为什么输出来的结果有偏差

#include <stdio.h>
double fun(int n,double x)
{if(n=0)
return 1;
if(n=1)
return x;
if(n>1)
return ((2*n-1)*x-fun(n-1,x)-(n-1)*fun(n-3,x))/n;

}
int main(){
int n;
double x;
scanf("%d %l",&n,&x);
double fun(int n,double x);
printf("%.2f",fun(n,x));
return 0;}

img

  • 写回答

3条回答 默认 最新

  • lzl2040 新星创作者: 人工智能技术领域 2022-10-31 15:34
    关注

    使用%.2lf输出,因为你的返回值是double类型
    if(n=1)改成if(n==1);if(n=0)改成if(n==0)
    scanf("%d %lf",&n,&x);不是scanf("%d %l",&n,&x);

    #include <stdio.h>
    double fun(int n,double x)
    {if(n==0)
    return 1;
    if(n==1)
    return x;
    if(n>1)
    return ((2*n-1)*x-fun(n-1,x)-(n-1)*fun(n-3,x))/n;
    
    }
    int main(){
    int n;
    double x;
    scanf("%d %lf",&n,&x);
    double fun(int n,double x);
    printf("%.2lf",fun(n,x));
    return 0;}
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 10月31日
  • 已采纳回答 10月31日
  • 创建了问题 10月31日