C编程找错,求大佬帮忙

提问:C编程找错,求大佬帮忙

请问大佬哪里有问题?运行几次了,都不对,两个答案不一样,求哪位大佬帮忙看看是哪里出问题了?#include #include int mysin(float x){ float sum=0; int i,j; float a[100]; for (i=0;pow(x,2*i+1)/fact(i)>pow(10,-5);i++) { a[i]=(float)(pow(x,2*i+1)/fact(i)); }for (j=0;j<=i;j++) { sum+=pow(-1,j)*a[j]; } printf ("mysin(x)=%fn",sum);}float fact (int i){ float j; float sum=1; for (j=1;j<=2*i+1;j++) { sum=sum*j; } return sum;}int main(){ float m,x;printf("请输入x:"); scanf ("%f",&x); m=sin(x); printf ("sin(x)=%fn",m); mysin(x); return 0;}

网友回答:

你的问题是,你的函数声明没有在使用的前面

在int mysin(float x)中

你的   for (i=0;pow(x,2*i+1)/fact(i)>pow(10,-5);i++)

调用了fact,而此时fact还没有定义,它会缺省它的值为int

结果肯定不对了

你要么将fact定义放在mysin前面.,要么在mysin前面加声明

float fact (int i);

另外,考虑效率

float fact (int i)中的float j 可改为int j(循环变量只要整形就可以了)

还有就是你的pow(10,-5);是常量,改为1e-5就可以了

测试 (箭头所指3个地方是我改的)


相关推荐

C语言编程输出1000对孪生素数

C语言编程输出1000对孪生素数

C语言编程问题

C语言编程问题

C语言编程运行到一半就出现错误了

C语言编程运行到一半就出现错误了

C语言编程问题

C语言编程问题

c语言编程出现错误

c语言编程出现错误

C语言编程,根据题目:定义一个二维数组....

C语言编程,根据题目:定义一个二维数组....

c语言编程

c语言编程

C语言编程题:先输入最小数(a),再输入最大数(b),报出a与b之间的偶数。

C语言编程题:先输入最小数(a),再输入最大数(b),报出a与b之间的偶数。

C语言编程这个代码

C语言编程这个代码

c语言编程

c语言编程

C语言编程

C语言编程

比较好用的C语言编程软件除了c++还有啥

比较好用的C语言编程软件除了c++还有啥

C语言C++谜题。请问一下读书高手C/C++编程的中文分号与英文分号有区别吗?编译时会出错吗?

C语言C++谜题。请问一下读书高手C/C++编程的中文分号与英文分号有区别吗?编译时会出错吗?

.输入一个5*5的矩阵数列,编程实现c语言

.输入一个5*5的矩阵数列,编程实现c语言

C语言用数组编程实现,输入一个整型数据,输出各位数字之和。

C语言用数组编程实现,输入一个整型数据,输出各位数字之和。

盒子游戏,游戏玩家专属个性阅读社区


©CopyRight 2010- 2020 BOXUU.COM Inc All Rights Reserved

鄂公网安备 35020302000061号- 鄂ICP备2020015574号-1