簡體   English   中英

C++ / 錯誤:表達式必須具有整數或無作用域的枚舉類型

[英]C++ / Error: expression must have integral or unscoped enum type

我的代碼有錯誤,我不知道如何解決這個問題,有人可以幫助我嗎?

錯誤:表達式必須具有整數或無作用域的枚舉類型

我在 arr[i] 和 2.0 的第 12 行看到了這個錯誤!

我使用 Visual Studio 2019

int n,i,ev=0;
float arr[150];

cin >> n;

for (i = 0; i < n; i++)
{
    cin >> arr[i];
}
for (i = 0; i < n; i++)
{
    if (arr[i] % 2.0 == 0.0)
        ev++;
}

這就是它所說的:表達式必須具有整數或無作用域類型。

行號和列號將您指向%操作。 這是一個整數模運算,需要整數

2.0不是整數,也不是arr[i]

改用std::fmod

你會在這里掙扎。 查找“偶數”浮點數可能很棘手,因為浮點數可能不准確。 確定您是否真的需要浮點數,如果需要,請確定您是否真的需要找出它們是否是整數。

如果使用整數對您來說不是問題,那么您可以嘗試使用此代碼-

int n,i,ev=0;
int arr[150];

cin >> n;

for (i = 0; i < n; i++)
{
    cin >> arr[i];
}
for (i = 0; i < n; i++)
{
    if (arr[i] % 2 == 0)
        ev++;
}

您遇到錯誤的原因是不支持浮點數的模運算。 如果您有進一步的查詢,請告訴我:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM