怎么改都不对,请大侠们看下。请编写函数fun,它的功能是计算下列级数和,和值由函数值返回

请编写函数fun,它的功能是计算下列级数和,和值由函数值返回。S = 1 + x + x(2)/2! + x(3)/3! + … x(n)/n!

#include <stdio.h>
#include <math.h>
double fun(int n, int x)
{
int k = 1;
int i,j;
double sum = 1;
for(i=n; i>=1; i--)
{
for(j=1; j<=i; j++)
{
k = k * j;
}
sum += 1.0 * pow(x, i) / k;//pow系统函数
k = 1;
}
return sum;
}
void main()
{
int n = 0, x = 0;
printf( "please input two numbers:" );
scanf( "%d, %d", &n, &x );
printf( "sum=%.2lf \n", fun(n, x)+1);
}

c:\program files\microsoft visual studio 10.0\vc\include\math.h(583): 可能是“long double pow(long double,int)”
1> c:\program files\microsoft visual studio 10.0\vc\include\math.h(535): 或 “float pow(float,int)”
1> c:\program files\microsoft visual studio 10.0\vc\include\math.h(497): 或 “double pow(double,int)”

这是错误打印,你的参数x只能是这里面的一种,不然int型强制转换成任一种都可能,造成歧义
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-01-23
主要是pow没有 pow(int,int)这个函数版本,转成其他的就可以了
比如
sum += 1.0 * pow((double)x, i) / k;

就可以了
第2个回答  2013-01-23
给x加个修饰即可,如sum += 1.0 * pow((double)x, i) / k;
第3个回答  2013-01-23
你说什么不对?结果 不对还是什么?追问

程序通不过,你可以把代码拷贝到编译器里看下,会出现图片中的那种问题,麻烦你看下,多谢。

追答

double fun(int n, int x)

改成double fun(int n, double x)

本回答被提问者采纳

...它的功能是计算下列级数和,和值由函数值返回?
double fun(double x , int n){ double sum=1;long s=1;for(int i=1;i<n;i++){ s*=i;sum+=pow(x,i)\/s;} return sum;}

...请编写函数fun,它的功能是计算下列级数和,值由函数值返回...
printf("%lf\\n",fun(x,n));} 0.3 10 1.349859 请按任意键继续. . .

C语言编程高手请来解决几道tc程序题
在主函数中任意输入一个整数,调用该函数,输出该整数的位数及各个位上的数字。要求:若没定义该函数,而在主函数中直接完成全部功能扣掉15分。3、编写函数fun,它的功能是:求出1到1000之内能被7或11整除、但不能同时被7和11整除的所有整数,并将它们放在a所指的数组中,统计满足条件的所有这些整数的个数并作为函数...

请用c语言编写一个函数fun功能是:计算n门课程的平均分,计算结果作为函 ...
float fun(float a[],int n){ int i;float s=0,t;for(i=0;i<n;n++)s=s+a[i];t=s\/n;return(t);}

新手求解:谁能给我一个Tecplot的安装软件,我下载的都没有“szz、sxx...
请编写函数fun2,它的功能是:将字符串尾部的号全部删除,前面和中间的号不删除。 function y=fun2(s) clc %s='ABCDEFG' %ans =ABCDEFG sz=abs(s); for k=0:length(sz) if sz(end)==abs('') sz(end)=[]; else break end end y=setstr(sz); %3请编写函数fun3, 函数的功能是:统计一行字符串...

计算机二级C语言100套上机填空题和改错题
printf("\\nRhe result is %1f\\n",fun(n));}8、 改错7下列给定程序中,函数fun的功能是:用选择法对数组中的n个元素按从小到大的顺序进行排序。请改正程序中的错误,使程序能得出正确的结果。注意,不要改多main函数,不得增行或删行,也不得更改程序的结构!试题程序:#include <stdio.h>#define N 20void ...

为什么总是差那么一点?
程序逻辑错了:s+=k*x\/j;x*=x;导致运行结果是这样的:S=1-x+x^2\/2!-x^4\/3!+x^8\/3!-……改法:增加一个变量m,初值为x;s+=k*x\/j; => s+=k*m\/j;x*=x; => m*=x;改后运行结果:0.60653065971263331,四舍五入后与结果同。

相似回答