运行时可以输入但是没有输出,如何解决?(语言-c语言)

问题遇到的现象和发生背景

题目是:求表达式s=x/2!+x(3次方)/4!+……+x(2n-1次方)/(2n)!的值。要求:变量x与n的值在主函数输入,通过调用函数求出s的值并打印输出。

问题相关代码,请勿粘贴截图
#include<stdio.h>
int main()
{
    float fac(int x,int n);
    int n,x,i;
    float sum=0;
    float y;
    printf("输入变量x和n的值:");
    scanf("%d%d",&x,&n);
    for(i=1;i<=n;i++)
    {
        y=fac(x,i);
        sum+=y;
    }
    printf("s=%f",sum);
    return 0;
}

float fac(int x,int n)
{
    float y;
    int i,j,m=1;
    if(n==0)
    {
        m=1;
    }
    else
    {
        for(i=2*n;i>=1;i--)
        {
            m*=i;
        }
    }
    y=x^(2*n-1)/m;
    return(y);
}

运行结果及报错内容

编译成功,运行后输入1 2,没有输出

我的解答思路和尝试过的方法

把每一项的值通过调用函数之后返回主函数,叠加后得到s的值

我想要达到的结果

能正确运行 没有错误



img


printf() 你写了 scanf()。

有帮助的话采纳一下


15行的代码改一下:
scanf("s=%f",sum);
改为
printf("s=%f",sum);

你将代码第15行改为下面即可
输入方式数字 空格 数字

    printf("s=%f",sum);

修改后的代码

#include<stdio.h>
int main()
{
    float fac(int x,int n);
    int n,x,i;
    float sum=0;
    float y;
    printf("输入变量x和n的值:");
    scanf("%d%d",&x,&n);
    for(i=1;i<=n;i++)
    {
        y=fac(x,i);
        sum+=y;
    }
    printf("s=%f",sum);
    return 0;
}
float fac(int x,int n)
{
    float y;
    int i,j,m=1;
    if(n==0)
    {
        m=1;
    }
    else
    {
        for(i=2*n;i>=1;i--)
        {
            m*=i;
        }
    }
    y=x^(2*n-1)/m;
    return(y);
}
 

img