Analyze Input

2 minute read

The code has been modified slightly and now uploaded to the site.

Question

<— Return Home

111.cpp

#include <iostream>

class t111{
    public:
        t111();
        t111(int);
        void insert(int);
        void add(int);

        friend std::ostream & operator << (std::ostream & out, t111 & obj);

    private:
        int start = 0;
        int size;
        int * A;
        int countEven = 0;
        int countOdd = 0;
        bool * isEven;
};

t111::t111(){
    size = 0;
    A = nullptr;
    isEven = nullptr;
}

t111::t111(int num){
    size = num;
    A = new int[size];
    isEven = new bool[size];
}

void t111::insert(int num){
    // int* add = new int[size];
    // for (int i = 0; i < size - 1; i++){
    //     add[i] = A[i];
    // }
    if (num % 2 == 0){
        countEven += 1;
        isEven[start] = true;
    }
    else {
        countOdd += 1;
        isEven[start] = false;
    }
    A[start++] = num;
    // delete[] A;
    // add[size - 1] = num;
    // A = add;
}

// void t111::add(int num){
//     size += 1;
//     int* add = new int[size];
//     for (int i = 0; i < size - 1; i++){
//         add[i] = A[i];
//     }
//     if (num % 2 == 0){
//         countEven += 1;
//     }
//     else {
//         countOdd += 1;
//     }
//     delete[] A;
//     add[size - 1] = num;
//     A = add;
// }

std::ostream & operator << (std::ostream & out, t111 & obj){
    if (obj.countEven == 1){
        out << "There is " << obj.countEven << " even number and ";
    }
    else {
        out << "There are " << obj.countEven << " even numbers and ";
    }
    if (obj.countOdd == 1){
        out << obj.countOdd << " odd number.";
    }
    else {
        out << obj.countOdd << " odd numbers.";
    }
    out << std::endl;
    out << "Evens: ";
    for (int i = 0; i < obj.size; i++){
        if (obj.isEven[i] == true){
            out << obj.A[i] << " ";
        }
    }
    out << std::endl;
    out << "Odds: ";
    for (int i = 0; i < obj.size; i++){
        if (obj.isEven[i] == false){
            out << obj.A[i] << " ";
        }
    }
    out << std::endl;
    return out;
}

int main(){
    int val;
    int in;
    t111 intArr;
    std::cout << "Enter size: ";
    std::cin >> val;
    intArr = t111(val);
    int i = 0;
    while (i < val){
        std::cout << "Enter integer: ";
        std::cin >> in;
        intArr.insert(in);
        i++;
    }
    // intArr.add(96);
    // intArr.add(33);
    // intArr.add(88);
    // intArr.add(20);
    // intArr.add(10);
    std::cout << intArr;
    return 0;
}

<— Return Home