| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 769 人关注过本帖
标题:各位大虾,帮我看看这个算法问题在哪里
只看楼主 加入收藏
xiaokiss2008
Rank: 2
等 级:论坛游民
帖 子:37
专家分:20
注 册:2011-7-8
结帖率:28.57%
收藏
 问题点数:0 回复次数:10 
各位大虾,帮我看看这个算法问题在哪里
我自己编了个程序  核心是算法(sin函数)  但始终结果不对  请指教;
double Mysin(const double m,const int n)
{
    int i;
    double y,fenzi,fenmu,xishu;
    fenmu=1,y=0;
    for(i=2;i<n;i++)
    {
        fenzi=pow(m,2*i-1);
        fenmu=(2*i-1)*(2*i-2)*fenmu;
        xishu=pow((0-1),2*n-1);
        y=m+xishu*fenzi/fenmu;
    }
    return y;
}
搜索更多相关主题的帖子: double 
2011-07-13 22:24
xiaokiss2008
Rank: 2
等 级:论坛游民
帖 子:37
专家分:20
注 册:2011-7-8
收藏
得分:0 
顶起来  绝不能沉
2011-07-13 22:46
xiaokiss2008
Rank: 2
等 级:论坛游民
帖 子:37
专家分:20
注 册:2011-7-8
收藏
得分:0 
我这个算法是想利用泰勒公式来编出sin函数
2011-07-13 22:50
夜叶
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:104
专家分:189
注 册:2011-5-7
收藏
得分:0 
y=m;//放在循环前面
y+=分式;//位子不变,循环内
2011-07-14 05:48
xiaokiss2008
Rank: 2
等 级:论坛游民
帖 子:37
专家分:20
注 册:2011-7-8
收藏
得分:0 
还是不太对头啊, 我直接放完整程序算了
#include<conio.h>
#include<graphics.h>
#include<math.h>
#define pi 3.14159265
void DrawCoord();
void Drawstg();
void Drawsin();
void initgr(void)
{
    int driver,mode;
    driver=DETECT;
    mode=0;
    initgraph(&driver,&mode,"");
}
int main(void)
{
    initgr();
    DrawCoord();
    Drawstg();
    double Mysin(const double m,const int n);
    Drawsin();
    getch();
    closegraph();
    return 0;
}
void DrawCoord() /*画坐标系*/
{
    line(200,0,200,400); /*y轴*/
    line(0,200,400,200); /*x轴*/
    line(200,0,195,5); /*箭头*/
    line(200,0,205,5);
    line(400,200,395,195);
    line(400,200,395,205);
    outtextxy(180,10,"y"); /*标出y轴*/
    outtextxy(380,180,"x"); /*标出x轴*/
    outtextxy(210,210,"O");/*标出原点*/
}
void Drawstg()/*标出刻度尺*/
{
    int x,y,i;
    x=200,y=400;
    for(i=0;i<400;i++)
    {
        line(x+5,y,x,y);
        y-=10;
    }
    x=400,y=200;
    for(i=0;i<400;i++)
    {
        line(x,y-5,x,y);
        x-=10;
    }
}
double Mysin(const double m,const int n)
{
    int i;
    double y,fenzi,fenmu,xishu;
    fenmu=1,y=m;
    for(i=2;i<n;i++)
    {
        fenzi=pow(m,2*i-1);
        fenmu=(2*i-1)*(2*i-2)*fenmu;
        xishu=pow((0-1),2*n-1);
        y+=xishu*fenzi/fenmu;
    }
    return y;
}
void Drawsin()/*画出sin函数*/
{
    int x;
    double y,p,q;
    moveto(200,200);
    for(x=200;x<=(40*pi+200);x=(x+1))
    {
        //double Mysin(const double m,const int n);
        p=0.05*(x-200);
        q=Mysin(p,1000);
        y=(0-100*q)+200;
        lineto(x,y);
    }
}
这个是画出来的图
2011-07-14 09:22
xiaokiss2008
Rank: 2
等 级:论坛游民
帖 子:37
专家分:20
注 册:2011-7-8
收藏
得分:0 
图怎么上不来啊
2011-07-14 09:24
xiaokiss2008
Rank: 2
等 级:论坛游民
帖 子:37
专家分:20
注 册:2011-7-8
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册
图来了    别沉   等待达人救命
2011-07-14 10:50
xiaokiss2008
Rank: 2
等 级:论坛游民
帖 子:37
专家分:20
注 册:2011-7-8
收藏
得分:0 
为什么只能画出  pi/2 的图像  后面都变0
2011-07-14 10:50
coldhurt
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-7-14
收藏
得分:0 
pow(x,y)函数中应大于0
2011-07-14 11:17
coldhurt
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2011-7-14
收藏
得分:0 
x应大于0
2011-07-14 11:18
快速回复:各位大虾,帮我看看这个算法问题在哪里
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017592 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved