2014-11-21 96 views
0

我正在写这个代码来读取一个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++; 
     } 
    } 
} 

该线路上的错误:“如果(ARR [J])%2 == 1)

+1

“偶”和“奇”,通常适用于整数,那么为什么一个浮标阵列? – molbdnilo 2014-11-21 12:25:09

+0

这是一个功课,我想用一些花车 – 2014-11-21 12:27:01

+2

void main是非法的。你忘了删除你的数组。为什么不使用'vector ' – 2014-11-21 12:29:06

回答

3

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

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

有没有这样的运营商要改用什么是fmod,定义我。在<cmath>库。

+0

有没有使用cmath库和fmod运算符的另一种方法,我们没有在大学里研究它们。 – 2014-11-21 12:31:30

+0

@RuaaBrkat你可以自己编写这个函数,它并不那么复杂,只是想想mod的定义。此外,现在我想到了......无论如何,什么是奇怪的浮动? – Barry 2014-11-21 12:35:04

1

如果你只有整数值,你可以使用arrint

int *arr = new int[N]; 
+1

这是一个家庭作业,我想用一些浮标 – 2014-11-21 12:28:06

相关问题