这个运作结果总是不对,函数这块实在不会。求大神
这个运行结果总是不对,函数这块实在不会。求大神。
#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. 查看警告信息
------解决思路----------------------
楼主,我简单改了下,输出正常了,pow函数的第二个入参要double型,另外打印输出不能是整形。

------解决思路----------------------
printf("%f\n",s(x,n));
------解决思路----------------------
下断点,然后单步调试。调试是解决问题的一种好方式
#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));
------解决思路----------------------
下断点,然后单步调试。调试是解决问题的一种好方式