表达式必须具有带数组的整数或无范围枚举类型

时间:2014-11-21 12:14:09

标签: 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)

2 个答案:

答案 0 :(得分:3)

您正在尝试<float> % <int>

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

没有这样的操作员。您想要使用的是fmod,在<cmath>库中定义。

答案 1 :(得分:1)

如果您只有整数值,则可以int使用arr

int *arr = new int[N];