0

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

"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”之前的预期主表达式</p>

:9:1: 错误:预期 ';' 在'返回'之前</p>

:在函数'int main()'中::15:13:错误:'-'令牌之前的预期不合格ID

:~> 'return' 之前的预期主表达式</p>

非常感谢您的帮助!

#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; 
} 
}
4

1 回答 1

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: 错误:预期 ';' 在'返回'之前</p>

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

也在这里:

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

这不是您定义数组的方式,您应该阅读这些基础知识,因为您是游戏新手,这在此处很明显:

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

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

cout << "print " << n << "," << sqrt(n) << ", and" << my_sqrt_1(n); 
于 2013-09-17T00:05:51.127 回答