0

正または負の数値を含む配列の最初のインデックスを調べ、それが負の符号 (つまり -) であるかどうかを分類する bool 関数を作成しようとしています。負の符号の場合は false を返し、それ以外はすべて true を返します。負の符号を比較する方法を理解しようとしています。次のコードでは、「-」が原因でエラーが発生します

    bool BigNum::get_positive() const
{
char '-';
if(digits[0] == '-')
{
    return false;
}
else
{
    return true;
}
}
4

3 に答える 3

5
char '-';

コンパイラは、char を宣言しようとしていると見なしますが、それは有効な宣言ではありません。

関数全体を次のように置き換えることができます。

return (digits[0] != '-');

もちろん、これは[0]が の有効なインデックスであると仮定していますdigits。そうしないと、悪いことが起こります。配列の長さがわかっている場合は、次のようにチェックできます。

if( digits_length < 1 )
  return false;
return (digits[0] != '-');
于 2011-09-21T07:48:54.093 に答える
1

間違いは折れ線グラフ'-'にあります。'-'は、後で比較するためにif句で使用できる変数に格納されることになっています。'-'のストレージを定義していないため、これは構文エラーです。

それ以外の場合は、上記で指摘したように、この行を削除して、ifで「-」を使用しないでください(すでに実行しているため)

于 2011-09-21T07:54:26.813 に答える
1

「char '-';」を削除またはコメントする必要があります。

于 2011-09-21T07:52:28.850 に答える