这是一个求Sin(x)的程序:
#include<stdio.h>
#include<math.h>
float sin(float x)
{
float feizi=x,m,s=1,sum=x;
int feimu=1,r;
for((r=3)&&(feizi=x*x*x);;(r=r+2)&&(feizi=feizi*x*x))
{
feimu=feimu*r*(r-1);
s=-s;
m=feizi/feimu*s;
while(fabs(m)>=1e-6)
sum=sum+m;
}
return sum;
}
void main()
{
float item,a;
scanf("%f",&a);
item=sin(a);
printf("%f\n",item);
}
----------------解决方案--------------------------------------------------------
for((r=3)&&(feizi=x*x*x);;(r=r+2)&&(feizi=feizi*x*x))
这是什么?无限循环?
----------------解决方案--------------------------------------------------------
建议LZ写一下你的思路
sinx=? 有公式吗
[此贴子已经被作者于2006-11-25 11:12:19编辑过]
----------------解决方案--------------------------------------------------------
----------------解决方案--------------------------------------------------------
for((r=3)&&(feizi=x*x*x);;(r=r+2)&&(feizi=feizi*x*x))
这是什么?无限循环?
我问的这个问题你解决了么?为什么这样写?
----------------解决方案--------------------------------------------------------
这是一个求Sin(x)的程序:
#include<stdio.h>
#include<math.h>
float sin(float x) // sin是头文件 math.h 中的求正弦的函数,不能同名
{
float feizi=x,m,s=1,sum=x;
int feimu=1,r;
for((r=3)&&(feizi=x*x*x);;(r=r+2)&&(feizi=feizi*x*x)) //有问题,没有结束判断
{
feimu=feimu*r*(r-1);
s=-s;
m=feizi/feimu*s;
while(fabs(m)>=1e-6)
sum=sum+m;
}
return sum;
}
void main()
{
float item,a;
scanf("%f",&a);
item=sin(a);
printf("%f\n",item);
}
----------------解决方案--------------------------------------------------------
for((r=3)&&(feizi=x*x*x);;(r=r+2)&&(feizi=feizi*x*x)) //有问题,没有结束判断
这的确是个无限循环
但 while(fabs(m)>=1e-6)不是个判断结束吗?
----------------解决方案--------------------------------------------------------
while(fabs(m)>=1e-6)不是结束的标志吗?
----------------解决方案--------------------------------------------------------
while结束了关FOR什么事?你应该从最基础语法补了
----------------解决方案--------------------------------------------------------
while结束了关FOR什么事?你应该从最基础语法补了
----------------解决方案--------------------------------------------------------