C++/错误:表达式必须具有整数或无作用域枚举类型

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

本文关键字:整数 作用域 类型 枚举 错误 表达式 C++      更新时间:2023-10-16

我的代码有错误,我不知道如何解决这个问题,任何人都可以帮助我?

错误:表达式必须具有整数或无作用域枚举类型

我在 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++;
}

出现错误的原因是不支持浮点数的模块化操作。如果您有进一步的疑问:),请告诉我