首页 文章

c中sqrt函数程序中的错误

提问于
浏览
1

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

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

:在函数'int main()'中:15:13:错误:在' - '标记之前预期的unqualified-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 回答

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

    对于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);
    

相关问题