函数调用问题,我定义的两个函数都跳过了
能编译,但不显示结果,把我定义的两个函数都跳过去了。//求sinx=x-x3/3!+x5/5!-x7/7!+....的近似值,直到最后一项的绝对值<1e-6为止
#include<stdio.h>
#include<math.h>
float sin(float x);
int jie(int x); // 求分母阶乘的函数
int main()
{
float x;
printf("请输入x:");
scanf("%f",&x);
printf("sinx=%f",sin(x));
}
float sin(float m)
{
int i=1,s=1;
float z=0;
while(fabs(pow(m,i)/jie(i))>=1e-6) //某一项>=1e-6就继续循环
{
z=z+pow(m,i)*s/jie(i); //总和
s=-s;
i=i+2;
}
return z;
}
int jie(int n)
{
if(n==1||0) return 1;
else return n*jie(n-1);
}
还有能不能顺便告诉我怎么悬赏渔币?{:5_100:} 我找了很久都没找到悬赏鱼币的窗口 本帖最后由 zltzlt 于 2020-2-18 11:38 编辑
新鱼友没权限悬赏鱼币,等到积分满 100 就可以了。
我把你的函数名改了下,就可以了
可能sin这个函数与系统内部的一个函数重名了,建议以后自己设计的函数时,加上什么MySin()等等,防止重名 4goodworld 发表于 2020-2-18 12:53
我把你的函数名改了下,就可以了
可能sin这个函数与系统内部的一个函数重名了,建议以后自己设计的函数 ...
不对,如果函数名冲突了是以自己定义的函数为准的,可以重名。你这个正确了是因为你忘了给主函数中的sin加—— 相当于直接调用的函数库中的sin(x),结果当然对了。 1617114868 发表于 2020-2-19 01:05
不对,如果函数名冲突了是以自己定义的函数为准的,可以重名。你这个正确了是因为你忘了给主函数中的sin加 ...
确实,我乌龙了,给你造成了误会,不好意思。
下午我测试并查了些资料
能够运行,你阶乘的程序的返回值不能用int,不然超范围了
页:
[1]