| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2197 人关注过本帖
标题:有大神愿意给我看看这个程序哪出问题了吗……为什么输出结果不对
只看楼主 加入收藏
Aa1060030551
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2017-3-19
结帖率:83.33%
收藏
已结贴  问题点数:20 回复次数:19 
有大神愿意给我看看这个程序哪出问题了吗……为什么输出结果不对
图片附件: 游客没有浏览图片的权限,请 登录注册
图片附件: 游客没有浏览图片的权限,请 登录注册

这里是代码以及结果 有两个不对 求帮忙指点一下哪里有错……这个题目就是用泰勒公式求sinx 要求输入x和n
2017-03-19 23:48
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
既然有对的 有错的 初步怀疑你没有考虑特殊值的
从最后一项错误来看  -0.97753012  -0.97750992  又貌似公式不对

总之 你没有题目要求  也没有贴代码  无法帮你调试

DO IT YOURSELF !
2017-03-20 09:58
qingdaozhang
Rank: 2
等 级:论坛游民
帖 子:6
专家分:20
注 册:2017-3-19
收藏
得分:0 
像这种可以动用调试君。
2017-03-20 11:16
Aa1060030551
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2017-3-19
收藏
得分:0 
题目要求:【问题描述】

已知sinx的近似计算公式如下:

 sin x = x - x3/3! + x5/5! - x7/7! + ... + (-1)n-1x2n-1/(2n-1)!

 其中x为弧度,n为正整数。编写程序根据用户输入的x和n的值,利用上述近似计算公式计算sinx的近似值,要求输出结果小数点后保留8位。

【输入形式】

从控制台输入小数x(0<=x<=10)和整数n(1<=n<=1000),两数中间用空格分隔。

【输出形式】

控制台输出公式结果:小数点后保留8位。

【样例输入1】

0.5236  4

【样例输出1】

0.50000105

【样例输入2】

0.5236  50

【样例输出2】

0.50000106

【样例说明】

输入x为0.5236,n为4,求得sinx近似计算公式的值为0.50000105,小数点后保留8位;同样,输入x为0.5236,n为50,求得sinx近似计算公式的值为0.50000106,小数点后保留8位。

注意:为保证数据的准确性和一致性,请使用double数据类型保存计算结果。

代码:
程序代码:
#include <stdio.h> 

int main () 

{ 


 long double sx;


 long double x,a,b,n,f=1;


 scanf ("%Lf %d",&x,&n);

 sx=a=x;


 b=1;


 for (n=1;n<=1000;n++)


 {

  a*=x*x;

  b*=4*n*n+2*n;

  f=-f;

  sx+=a/b*f;


 }


 printf ("%.8Lf\n",sx);


 return 0;

}
2017-03-20 12:30
Aa1060030551
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2017-3-19
收藏
得分:0 
回复 2楼 wp231957
已经贴了 如果大神有空麻烦帮我看看吧QAQ
2017-03-20 12:30
Aa1060030551
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2017-3-19
收藏
得分:0 
回复 3楼 qingdaozhang
那是啥……
2017-03-20 12:30
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
回复 4楼 Aa1060030551
你把这题想的太简单了吧

n的最大值是1000  而公式的最末项的分母是(2n-1)! 就是1999! 这个数实在是太大了  大到double类型也装不下

DO IT YOURSELF !
2017-03-20 12:46
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:0 
回复 4楼 Aa1060030551
虽然题目很屎(任何需要用到浮点数的题目都不能保证结果相同),但我觉得你还是完完全全按照题目要求来写比较好
先试试
程序代码:
#include <stdio.h>

int main( void )
{
    double x;
    unsigned n;
    scanf( "%lf %d", &x, &n );

    double result = x;
    double temp = x;
    for( unsigned i=1; i<n; ++i )
    {
        temp *= -x*x/(4*i*i+2*i);
        result += temp;
    }

    printf ("%.8f\n", result );
    return 0;
}

2017-03-20 13:11
Aa1060030551
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2017-3-19
收藏
得分:0 
回复 8楼 rjsp
你这个代码有问题orz
图片附件: 游客没有浏览图片的权限,请 登录注册
2017-03-20 17:00
Aa1060030551
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2017-3-19
收藏
得分:0 
回复 7楼 wp231957
那我应该缩小吗_(:3」∠)_ 缩小了也没用。。
2017-03-20 17:00
快速回复:有大神愿意给我看看这个程序哪出问题了吗……为什么输出结果不对
数据加载中...
 
   



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

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