1. ホーム
  2. c++

[解決済み】エラー。"式はintegralまたはunscoped enum型でなければならない" [重複]

2022-02-17 18:49:08

質問

私は他のコードに置き換えることができる方法を理解するために略記法を書いています。 "式はインテグラルまたはスコープされていないenum型でなければならない" .

enum型が正確には分からないので、コードが実行されない?

プレ #include<iostream> #include<string> using namespace std; int main() { double b, x, y, z, a, c; c, b, x, y, z, a, c = 100; x += 5; y -= 2; z *= 10; a /= b; c %= 3; // "c" seems to be giving out that error? cout << b << x << y << z << a << c; return 0; }

ここで問題なのは、"c "が "式はintegralかunscoped enum型でなければならない" のエラーが発生します。

モジュールが何をするものかは知っています。2つの数値の除算の余りを与えるものですが、この場合、余りを与えるべきなのか、困っています。構文的に間違っているのでしょうか?

どのように解決するのですか?

{コード {コード は double なので、modulo 演算子は使えません。 c.

使用方法 fmod() の代わりに

そこで、これを変更します。

%

をこれに追加します。

{{コード

Slavaさんがおっしゃるように c %= 3 の代わりに、次のようにします。

c = fmod(c, 3);

を使う必要はないだろう。 int. ここで重要なのは、モジュロ演算子 int c = 5; // for example c %= 3 で動作します。 fmod()s.


πάντα ρέιが述べたように、こんなのもあります。 倍数体にはモジュールが使えない?


余談ですが、Victorさん、たくさんの変数を持っていますが、そのほとんどが未使用、または初期化されていませんね。すべての警告を有効にしてコンパイルしましたか?以下は、あなたのオリジナルのコードをコンパイルしたときに表示されるものです(エラーを発生させる行はコメントアウトされています)。

%