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++;
}
出现错误的原因是不支持浮点数的模块化操作。如果您有进一步的疑问:),请告诉我
相关文章:
- 未在作用域中声明unordered_map
- 有没有一种方法可以在编译时获得作用域类名
- C++quit()函数中可能存在作用域问题
- 未在此作用域OpenCV3.4中声明cvSaveImage
- 全局作用域中函数指针的赋值
- 在类函数中初始化外部作用域变量
- 不同作用域中的静态变量和全局变量
- 是同一作用域的函数部分中的函数调用
- 未在此作用域中声明的函数和变量 (C++)
- 类作用域的类型别名"using":[何时]方法中的用法可以先于类型别名?
- 将作用域枚举转换为基础类型
- 表达式必须具有完整或无作用域的枚举图
- 在构造函数中输入对象时C++类成员作用域
- 无法让"std::enable_if"适用于无作用域枚举
- C++/错误:表达式必须具有整数或无作用域枚举类型
- C++ 在方程中使用变量;错误:表达式必须具有整数或无作用域枚举类型及其他
- 错误:以增量方式填充向量时,表达式必须具有整数或无作用域枚举类型
- C++全局整数和作用域整数初始值
- 表达式必须具有整数或无作用域枚举类型,并带有字符串向量
- GetBValue 错误:表达式必须具有整数或无作用域枚举类型