新手求助!!求大神解答!!

HScholar 2014-03-09 01:39:33
输入x的值,按照下列公式计算cosx的值,直到最后一项小于10-6为止:cosx=1-(x^2/2!)+(x^4/4!)+(x^6/6!)..
我写的程序是这样的:

#include<stdio.h>
void main()
{
int n=0,i,d;
double x,a,b,z=0;
scanf("%lf",&x);
do
{
for(i=1,b=1;i<=n;i++)
{
b=b*i;
}
z+=(x*1en/b)*d;
n+=2;
d=-d;
}
while(x*1en/b<=1e-6);
printf("cos%d=%lf\n",x,z);
}

不知道有什么问题,求大神解答!!!
...全文
141 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
百曉生 2014-03-09
  • 打赏
  • 举报
回复
百曉生 2014-03-09
  • 打赏
  • 举报
回复
引用 5 楼 u012928672 的回复:
[quote=引用 1 楼 u012421456 的回复:] lz你代码从哪儿弄来的啊? 第4行已经给 n 赋值为 0,而第9行i的值被赋为1,for循环的条件又是i<=n,结果根本没有一次循环啊,还有第10行的len从哪儿来的啊?上面没有啊
这个代码是我自己写的,n第一遍的时候是不进循环的,后面不是有个n+=2么,等第二遍的时候n就等于2了,然后1en是xen就是x的n次方的意思,我看书上写的e前面必须有个数字,然后我就乘了个1。[/quote] 看错了
HScholar 2014-03-09
  • 打赏
  • 举报
回复
引用 1 楼 u012421456 的回复:
lz你代码从哪儿弄来的啊? 第4行已经给 n 赋值为 0,而第9行i的值被赋为1,for循环的条件又是i<=n,结果根本没有一次循环啊,还有第10行的len从哪儿来的啊?上面没有啊
这个代码是我自己写的,n第一遍的时候是不进循环的,后面不是有个n+=2么,等第二遍的时候n就等于2了,然后1en是xen就是x的n次方的意思,我看书上写的e前面必须有个数字,然后我就乘了个1。
二胖哥哥 2014-03-09
  • 打赏
  • 举报
回复
首先你前面已经将n初始化为0,你在for循环的时候,条件是i<=n;这样for循环是不能运行的,而且你的for循环是{b=b*i},后面的代码根本没有参与循环运算,总的来说,这段程序的算法不对,而且差好多
深度抽象 2014-03-09
  • 打赏
  • 举报
回复
仅供参考:
#include <iostream>
using namespace std ;
//get the an

double x_an(double x,int i)
{
    double res = 1.0;
    for(int t = i ; t > 0; t--)
    {
        res*=(x/t) ;
    }
    return res ;
}

//cos(x)=1-(x^2/2!)+(x^4/4!)-(x^6/6!)..
double x_cos(double x,double rate = 1e-6)
{
    int i = 2 ;
    int ct = 1 ;
    double res = 1 ;
    double sig = -1;
    double an = 0 ;
    while(1)
    {
        sig = (ct%2 == 0 ? 1.0 : -1.0);
        i=2*ct;
        an = x_an(x,i);
        if(an < rate)break;
        an *= sig;
        res += an ;
        ct++;
    }
    return res;
}
int main()
{

   double x ;
   while(cin>>x){
        cout<<x_cos(x)<<endl;
   }
   return 0;
}
百曉生 2014-03-09
  • 打赏
  • 举报
回复
lz你代码从哪儿弄来的啊? 第4行已经给 n 赋值为 0,而第9行i的值被赋为1,for循环的条件又是i<=n,结果根本没有一次循环啊,还有第10行的len从哪儿来的啊?上面没有啊

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧