【问题标题】:Errors in a sqrt function program in c++c++中的sqrt函数程序中的错误
【发布时间】:2013-09-17 00:04:24
【问题描述】:

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

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

:9:1: 错误:在“return”之前需要“;”

:在函数“int main()”中: : 15:13:错误:“-”标记之前的预期 unqualified-id

:~> “return”之前的预期主表达式

非常感谢您的帮助!

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

【问题讨论】:

  • 你对 C++ 有一些基本的误解。
  • 您似乎在尝试使用cout 来做所有事情。你希望cout &lt;&lt; "print n,sqrt(n),and my_sqrt_1(n)" 做什么?
  • 俗话说:“这太糟糕了,它甚至没有错”。

标签: c++


【解决方案1】:

您在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); 

【讨论】:

  • 这甚至不会消除语法错误,更不用说所有其他问题了。 &lt;&lt;; 仍然是无效的语法。
  • @chris 谢谢!我从来不知道!当然 && 仍然会导致逗号的语法错误,并且绝对不会按照 OP 的要求进行操作:)
  • 是的,我从来没有说过它在上下文中是有效的:p
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-22
相关资源
最近更新 更多