中国电信会易通使用出4G版了?

欢迎加入我们,一同切磋技术。 &
用户名: &&&
密 码: &
共有 3399 人关注过本帖
标题:c语言
利用泰勒级数计算sinx的值
等 级:新手上路
帖 子:15
结帖率:50%
&&已结贴√
&&问题点数:20&&回复次数:12&&&
利用泰勒级数计算sinx的值
利用泰勒级数计算sinx的值,要求最后一项的绝对值小于,并统计出此时累加了多少项。请用“利用前项来计算后项”的方法计算累加项,不要使用pow函数编写程序
程序的运行结果示例1:
sin(x)=0.141,count=9
程序的运行结果示例2:
sin(x)=-0.544,count=18
输入格式: &%f&
输出格式:
输入提示信息:&Input x:\n&
输出格式:&sin(x)=%.3f,count=%d\n&
为避免出现格式错误,请直接拷贝粘贴题目中给的格式字符串和提示信息到你的程序中。
#include&stdio.h&
#include&math.h&
int f1(int n)
&&& int a ,b=1;
&&& for(a=1;a&=n;a++)
&&&&&&&&b=b*a;
&&& int d=1,c=3;
&&& float a,b=0,i,e;
&&& printf(&Input x:\n&,a);
&&& scanf(&%f&,&a);
&&& e=a*a*a;
&&&&&&&&i=e/f1(c);
&&&&&&&&if((d+1)%2==0)
&&&&&&&&i=-i;
&&&&&&&&b=b+i;
&&&&&&&&d++;
&&&&&&&&e=e*a*a;
&&&&&&&&c=c+2;
&&& }while(fabs(i)&=1e-5);
&&& printf(&sin(x)=%.3f,count=%d\n&,b,d);
用例测试结果&&&&&&&&&&&&&&&&&&&&运行时间&&& 占用内存&&& 提示&&& 得分
用例1未通过&&& --&&& 0kb&&&&&&&&&&&&运行时间超出限制&&&&&&&&&&&&&&&&&&&&&0
用例2未通过&&& --&&& 0kb&&&&&&&&&&&&运行时间超出限制&&&&&&&&&&&&&&&&&&&&&0
搜索更多相关主题的帖子:
&&&&&&&&&&
等 级:版主
威 望:200
帖 子:4788
专家分:25990
&&得分:10&
题主,当你提交代码前,有没有先用题目中给出的测试用例试试?只要你运行一下就能看出,因为int溢出而死循环。
程序代码:// sin(x) = sigma( (-1)^n * x^(2n+1) / (2n+1)! )
// f(n+1) = f(n) * (-x*x)/((2n+2)*(2n+3))
#include &stdio.h&
int main( void )
&&& double
&&& printf( &Input x:\n& );
&&& scanf( &%lf&, &x );
&&& double result =
&&& int count = <font color=#;
&&& double item =
&&&&&&&&item *= -x*x / (<font color=#*count) / (<font color=#*count+<font color=#);
&&&&&&&&result +=
&&&&&&&&++
&&& while( item&=+1e-<font color=# || item&=-1e-<font color=# );
&&& printf( &sin(x)=%.3f,count=%d\n&, result, count );
&&& return <font color=#;
等 级:新手上路
帖 子:15
回复 2楼 rjsp
对啊!我就发现是死循环,但我不知道是哪里溢出了,如果在我的代码上改应该怎么改呢?
等 级:新手上路
帖 子:15
回复 3楼 yogurtmai
是不是这样???
#include&stdio.h&
#include&math.h&
double f1(double n)
&&& double a ,b=1;
&&& for(a=1;a&=n;a++)
&&&&&&&&b=b*a;
&&& int d=1;
&&& double a,b,i,e,c=3;
&&& printf(&Input x:\n&,a);
&&& scanf(&%lf&,&a);
&&& e=-a*a*a;
&&&&&&&&i=e/f1(c);
&&&&&&&&b=b+i;
&&&&&&&&d++;
&&&&&&&&e=-(e*a*a);
&&&&&&&&c=c+2;
&&& }while(fabs(i)&=1e-5);
&&& printf(&sin(x)=%.3f,count=%d\n&,b,d);
等 级:新手上路
帖 子:15
回复 2楼 rjsp
为什么我把scanf(&%lf&,&a);改为scanf(&%f&,&a);输出的答案就错了?
把它改为scanf(&%lf&,&a);就对了?
我输进去的数明明就是 3 啊
3 的float型和double型有什么区别??
来 自:长长久久
等 级:贵宾
威 望:13
帖 子:2626
专家分:7930
&&得分:10&
虽然能运算,但是运算数据太大还是会导致数据溢出的
我把这个程序改进一下就能解决问题了
程序代码:#include&stdio.h&
#include&math.h&
#define Pi 3.1415926//***************************//
double f1(double n)
&&& double a ,b=<font color=#;
&&& for(a=<font color=#;a&=n;a++)
&&&&&&&&b=b*a;
&&& return
&&& int d=<font color=#;
&&& double a,b,i,e,c=<font color=#;
&&& printf(&Input x:\n&,a);
&&& scanf(&%lf&,&a);
&&& a=fmod(a,Pi);//fmod函数是求a与Pi整除的余数,加了这个便没有数据溢出了
&&& e=-a*a*a;
&&&&&&&&i=e/f1(c);
&&&&&&&&b=b+i;
&&&&&&&&d++;
&&&&&&&&e=-(e*a*a);
&&&&&&&&c=c+<font color=#;
&&& }while(fabs(i)&=1e-<font color=#);
&&& printf(&sin(x)=%.3f,count=%d\n&,b,d);
附件: 您没有浏览附件的权限,请
[code]/我就是有种先入为主的感觉~好像就和vc++6.0特别有缘~总是想方设法地用vc从一而终~消磨了好些岁月后就说~再见了vs-再见了gcc-再见了clodeblocks-再见了c-free-----更~*/[/code]
等 级:版主
威 望:200
帖 子:4788
专家分:25990
以下是引用yogurtmai在 14:48:37的发言:
为什么我把scanf(&%lf&,&a);改为scanf(&%f&,&a);输出的答案就错了?
把它改为scanf(&%lf&,&a);就对了?
我输进去的数明明就是 3 啊
3 的float型和double型有什么区别??输入double,用&%lf&;输入float,用&%f&
输出的话,随便
等 级:新手上路
帖 子:15
回复 7楼 rjsp
要怎么改才可以让输入定义成float也可以顺利输出答案?? 题目要求的输入格式是“%f”
等 级:版主
威 望:200
帖 子:4788
专家分:25990
回复 8楼 yogurtmai
将所有的double换成float,同时将所有的%lf换成%f
等 级:新手上路
帖 子:15
回复 6楼 九转星河
为什么我在VC上运行的答案和你的不一样??
附件: 您没有浏览附件的权限,请
版权所有,并保留所有权利。
Powered by , Processed in 0.060316 second(s), 8 queries.
Copyright&, BCCN.NET, All Rights Reserved

我要回帖

更多关于 会易通电脑版下载 的文章

 

随机推荐