c ++中sqrt函数程序中的错误

时间:2013-09-17 00:04:24

标签: c++

**基本上我得到了伪代码:

“x = 1

重复10次:x =(x + n / x)/ 2

返回x“

并且int main函数的伪代码(int main函数在cout中打印出我的n值),以便创建一个sqrt函数程序。我在linux2编译器上遇到以下错误:

:在函数'double my_sqrt_1(double)'中:

:9:1:错误:在'return'之前预期的primary-expression

:9:1:错误:在'return'之前预期';'

:在函数'int main()'中: : 15:13:错误:在' - '标记

之前预期不合格的id

:〜>在'return'之前预期的primary-expression

非常感谢帮助!

#include <iostream> 
#include <math.h> 
using namespace std; 

double my_sqrt_1(double n) 
{ 
for (int x= 1; x<10; ++x) 
cout<< x << '\t' << x=(x+n/x)/2 << 
return x; 
} 

int main() 
{ 
int n= 3.141459; 
int k= -100,-10,-1,0,1,10,and 100; 
for(auto k : { -100,-10,-1,0,1,10,100}){ 
n=3.14159 * pow (10.0,k); 
cout << "print n,sqrt(n),and my_sqrt_1(n)" ; 
return 0; 
} 
}

1 个答案:

答案 0 :(得分:3)

您在cout行末尾错过了分号:

double my_sqrt_1(double n) 
{ 
  for (int x= 1; x<10; ++x) 
    cout<< x << '\t' << x=(x+n/x)/2;
  return x; 
} 

线索出现错误:

  

:9:1:错误:在'return'之前预期';'

对于那些刚接触C / C ++的人来说,找到编译器错误的来源可能会很棘手,如果你错过了分号,报告的行通常会与包含实际错误的行不同。正如在这种情况下,return行成为与上一行相同的语句的一部分。

同样在这里:

int k= -100,-10,-1,0,1,10,and 100;  

这不是你如何定义一个数组you should read up on the basics of those,因为你是游戏的新手,这在这里很明显:

cout << "print n,sqrt(n),and my_sqrt_1(n)" ; 

您不是在调用任何函数,而是输出静态文本字符串。您需要在文字字符串之外进行函数调用和变量输出:

cout << "print " << n << "," << sqrt(n) << ", and" << my_sqrt_1(n);