在这个程序里 scanf 函数 如何不起作用了

在这个程序里 scanf 函数 怎么不起作用了?
求的是这个 多项式p(x) = 3 * x~5 + 4 * x~4 + 2 * x~3 + x~2 + 2 * x + 5 的值 (~5 这个表指数)
 我在11行用了一个scanf函数,想输入x的值,但却没有用 循环里x的值却不便,而是在8行初始化的时候,改变了x的值之后 在FOR循环里 x 才有变化!不知道为什么? 

#include "stdio.h"
#include <math.h> //求多项式的值,最简单的算法
void main()
{
int i;
int p[7] = {5, 3, 4, 2, 1, 2, 5};
long sum = 0;
double x = 1; /*这里起作用*/  
 
printf ("please enter the number of x: ");
scanf ("%f", &x); /* 这个不起作用*/
 
for ( i = 1; i <= p[0] + 1; i++ )
sum += p[i] * (int)pow(x, p[0] - i + 1);

printf ("the ansown is :%d\n", sum);
}


------解决方案--------------------
double要用%lf吧
------解决方案--------------------
对于double格式严格是lf 
格式符要严谨别记错
------解决方案--------------------
格式问题double