搜索
查看: 939|回复: 3
打印 上一主题 下一主题

关于sinx的程序,不知道错哪了,谢谢

[复制链接]
跳转到指定楼层
楼主
发表于 2014-1-24 21:23:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5啊哈币
#include <stdio.h>
#include <stdlib.h>
int main()
{
    double x,xn,sinx,fac;
    int i=-1;
    fac=-1;sinx=xn=x;
    printf("input a number:\n");
    scanf("%lf",&x);
    do
    {
      fac+=2;
      fac=fac*(fac+1)*(fac+2);
          xn*=x*x;
      sinx=sinx+xn/fac*i;
      i=-i;
    }while(xn/fac>1e-6);
    printf("%.2lf",sinx);
        system("pause");
        return 0;
}


最佳答案

查看完整内容

lz重新看遍程序,你不感觉别扭吗,错误简单,主要是程序流程
沙发
发表于 2014-1-24 21:23:20 来自手机 | 只看该作者
lz重新看遍程序,你不感觉别扭吗,错误简单,主要是程序流程
板凳
 楼主| 发表于 2014-1-24 21:32:14 | 只看该作者
算法不知道哪里错了,运行结果总不对。新人求各位大神解惑
地板
 楼主| 发表于 2014-1-25 10:44:26 | 只看该作者
超神级 发表于 2014-1-24 23:32
lz重新看遍程序,你不感觉别扭吗,错误简单,主要是程序流程

#include <stdio.h>
#include <stdlib.h>
void main()
{
    float x,xn,sinx,fac;
    int i=-1,n=1;
    fac=1;
    printf("input a number:\n");
    scanf("%f",&x);
    sinx=xn=x;
    do
    {
      fac=fac*(n+1)*(n+2);
          xn=xn*x*x;
      sinx=sinx+i*xn/fac;
      i=-i;
      n+=2;
    }while(xn/fac>1e-6);
    printf("%.2f",sinx);
        system("pause");
        return 0;
}
已改,两处错误:1.增加新变量n;
                        2.将sinx=xn=x;调整至scanf之后。
不过还是谢谢了~~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表