c++ - 表达式必须具有带数组的整数或无作用域枚举类型

标签 c++ arrays

我正在编写这段代码来读取 N 个整数数组,然后我想检查偶数并单独打印它们。

这是我写的,但是我得到这个错误: 表达式必须具有整数或无作用域的枚举类型

#include <stdio.h>

void main(){
    int N;
    int count_even = 0, count_odd = 0;
    scanf_s("%d", &N);
    float *arr = new float[N];
    for (int i = 0; i < N; i++){
        scanf_s("%f", &arr[i]);
    }
    for (int j = 0; j < N; j++){
        if (arr[j] % 2 == 1){
            count_odd++;
        }
    }
}

这一行的错误:“if (arr [j]) % 2 ==1)

最佳答案

你正在尝试做 <float> % <int> :

if (arr[j] % 2 == 1) {
//  ^^f^^^   ^i

没有这样的运算符。您想要使用的是 fmod , 在 <cmath> 中定义图书馆。

关于c++ - 表达式必须具有带数组的整数或无作用域枚举类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27061164/

相关文章:

c++ - 就像在 python 中定义 __str__ 一样,在类上调用时如何覆盖 c++ 中的标准全局函数

c++ - static const 成员是否有内部链接?

c++ - 这种链接异常的实现是如何工作的?

objective-c - 如何在 Objective-C 中打印单个数组元素?

java - 二维数组循环越界

c++ - 创建数据元组并将解压后的数据作为函数参数发送

c++ - 当队列不为空时,在queue.front()处为"deque iterator not dereferencable"

将长字符数组转换为字节数组

c++ - 从函数 C++ 返回数组

c - 数组和 C 语法