大家帮我看看哪出错了.

piaomiao163 2009-02-08 04:26:54



#include <iostream>
using namespace std ;


int main ()
{
int i = 1;
double arctan( double x );
double power( double x,int i );
cout << "The PI Is" << 16 * arctan( 0.2 ) - 4 * arctan( 1/239 ) << endl ;
system ( "pause" );
}

double power( double x, int i )
{
double n = 1 ;
while ( i > 0)
{
n = n * x;
i -- ;
}
return n ;
}

double arctan ( double x )
{
int j = 2;
int i = 1;
double result ;
while ( ( power( x,i ) / i) > 10E-15 )
{
result += (-1) * j * power( x, i ) * ( 1 / i ) ;
i = i + 2;
j++;
}
return result ;
}


...全文
50 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
szqh97 2009-02-08
  • 打赏
  • 举报
回复
把result初始化为0就可以了
szqh97 2009-02-08
  • 打赏
  • 举报
回复
提示很明白啊
The variable 'result' being used without initialized
变量result使用之前没有初始化
fiyaa 2009-02-08
  • 打赏
  • 举报
回复
result += (-1) * j * power( x, i ) * ( 1 / i )
等于result=result+(-1) * j * power( x, i ) * ( 1 / i )
所以提示没有初使化
Pajack 2009-02-08
  • 打赏
  • 举报
回复
令double result=0 ;。。。。记得赋初值。
lightnut 2009-02-08
  • 打赏
  • 举报
回复
result没有初始化:

================
double result ;
........
result += (-1) * j * power( x, i ) * ( 1 / i ) ;
===============
zhangzhao123 2009-02-08
  • 打赏
  • 举报
回复
没错啊
jackey_cyoo 2009-02-08
  • 打赏
  • 举报
回复
我指摘一个问题。
double arctan ( double x )
{
int j = 2;
int i = 1;
double result ;
while ( ( power( x,i ) / i) > 10E-15 )
{
result += (-1) * j * power( x, i ) * ( 1 / i ) ;
i = i + 2;
j++;
}
return result ;
}
这里面return一个auto变量result的话,是有问题的。

64,652

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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