C++ в чём заключается ошибка cannot be used as a function?

131
16 июня 2019, 02:30

Вроде делал без bool, всё работало, сейчас беда какая-то...

#include <cstdlib>
#include <iostream>
#include <ctime>
#include <cmath>

using namespace std;
bool chet(int);
void vyvod(int mas[], int a) {
    int i;
    for (i = 0; i < a; i++)
        cout << mas[i] << "  ";
    cout << endl;
}
int nechetn(int mas[], int a, int nech[], int u) {
    int i, neb = 0;
    for (i = 0; i < a; i++) {
        if (!(chet(mas[i]))) {
            nech[neb] = mas[i];
            neb++;
        }
    }
    return neb;
}
int chetn(int mas[], int a, int ch[], int u) {
    int i, b = 0;
    for (i = 0; i < a; i++) {
        if (chet(mas[i])) {
            ch[b] = mas[i];
            b++;
        }
    }
    return b;
}

int main() {
    int i, A, B, chetn, nechetn, kchet, knechetn;
    int mas[30], ch[30], nech[30], chet[30];
    cout << "Диапазон" << endl;
    cout << "введите А: ";
    cin >> A;
    cout << "введите В: ";
    cin >> B;
    srand(time(NULL));
    for (i = 0; i < 30; i++)
        mas[i] = rand() % (B - A + 1) + A;
    kchet = chetn(mas, 30, ch, 30);
    knechetn = nechetn(mas, 30, nech, 30);
    cout << "массив рандома: " << endl;
    vyvod(mas, 30);
    cout << "массив четных: " << endl;
    vyvod(ch, kchet);
    cout << "массив не четных: " << endl;
    vyvod(nech, knechetn);
    system("pause");
    return 0;
}
bool chet(int a) {
    int i;
    if (a % 2 == 0)
        return true;
    return false;
}
Answer 1

Возьмите в привычку давать переменным и функциям разные имена. Если вы будете бездумно давать им одинаковые имена - то будут получаться такие ошибки. Это не запрещено, но делать это надо с пониманием происходящего.

У вас в функции main имена chetn и nechetn - это переменные типа int, а не функции. А вы их пытаетесь "вызывать" как функции. О чем вам компилятор ясно и сказал.

READ ALSO
Выброс исключения без параметров

Выброс исключения без параметров

Читаю статью по исключениям и решил скопировать код оттудаВот код:

147
MessageBox C++. Проблема с выводом строки

MessageBox C++. Проблема с выводом строки

Мне нужно в MessageBox запихнуть stringНа выходе я получаю не нужную строку, а набор китайских иероглифов

122
Количество счастливых чисел

Количество счастливых чисел

Ну вообще не понимаю как решить данную задачу (наверное она на метод включения-исключения)

117
Скопировать все файлы [закрыт]

Скопировать все файлы [закрыт]

Как можно скопировать все файлы, имена которых начинается с "stat" (есть примерно 500 файлов типа stat1txt stat2

165