这个运作结果总是不对,函数这块实在不会。求大神

这个运行结果总是不对,函数这块实在不会。求大神。
#include<stdio.h>
#include<math.h>
double s (int x, int n);
int main()
{  int x,n;

   scanf("%d,%d",&x,&n);
   printf("%d",s(x,n));
   return 0;


}
double s (int x, int n)
{   int i;  float sum=0.0;
    for(i=1;i<=n;i++)
   sum = sum + pow(x,i);
return sum;
}  输出结果总是0  ;不知道为什么。
------解决思路----------------------
编译器不会警告吗, 还是说无视了. 
1. 换个编译器
2. 查看警告信息
------解决思路----------------------

#include<stdio.h>
#include<math.h>
double s(double x, double n);
int main()
{  
int x,n;
scanf("%d,%d",&x,&n);
printf("%f",s(x,n));
return 0;
}

double s(double x, double n)
{   
int i;  float sum=0.0;
for(i=1;i<=n;i++)
sum = sum + pow(x,i);
return sum;
}

楼主,我简单改了下,输出正常了,pow函数的第二个入参要double型,另外打印输出不能是整形。
这个运作结果总是不对,函数这块实在不会。求大神
------解决思路----------------------
printf("%f\n",s(x,n));
------解决思路----------------------
下断点,然后单步调试。调试是解决问题的一种好方式