0

**基本的に、擬似コードが与えられました:

"x = 1

10回繰り返す: x = (x + n / x) / 2

x」を返す

最後に、sqrt 関数のプログラムを作成するための int main 関数 (cout に my n 値を出力する int main 関数) の擬似コードを示します。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 に答える