C语言函数递归题目,运行结果不对


//求x的n次方
#include<stdio.h>
#include<math.h>
int main()
{
    int n;
    double x,Root;
    double calc_pow(double x,int n);
    printf("Enter x:");
    scanf("%d",&x);
    printf("Enter n:");
    scanf("%lf",&n);
    printf("Root = %lf\n",calc_pow(x,n));
    return 0;
} 
double calc_pow(double x,int n)
{
    if(n<=1)
    return x;
    else
    return x*calc_pow(x,n-1);
}

img

x为什么用%d输入