这个问题是什么,怎么解决?

这是源代码
#include<stdio.h>

double prime(int x, double n)
{
double y;
if (n == 0) {
return 1;
}
else if (n == 1) {
return x;
}
else {

    return  ((2 * n - 1) * x - prime(n - 1, x) - (n - 1) * prime(n - 2, x)) / n;
}

}

int main()
{
int a;
double b,c;
scanf_s(" % lf % d",&b, &a);
c = prime(a,b);
printf("%.2f\n", c);
return 0;
}
运行结果及报错内容 :
!https://img-mid.csdnimg.cn/release/static/image/mid/ask/817230837056126.png "#left")
https://img-mid.csdnimg.cn/release/static/image/mid/ask/710279737056177.png

修改如下
#include<stdio.h>

double prime(int x, double n)
{
double y;
if (n == 0) {
return 1;
}
else if (n == 1) {
return x;
}
else {

return  ((2 * n - 1) * x - prime(n - 1, x) - (n - 1) * prime(n - 2, x)) / n;

}
}

int main()
{
int a;
double b,c;
scanf(" % lf % d",&b, &a);//scanf没有_s
c = prime(a,b);
printf("%.2f\n", c);
return 0;
}

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

int main() {
int a;
double b, c;
scanf_s(" %lf %d", &b, &a);
c = prime(b, a);
printf("%.2lf\n", c);
getchar();
return main();
}