Не могу задать дробное значение при заполнении массива C++

Не могу понять в чем ошибка, код скорее всего очень кривой, но тем не менее с не дробными числами при заполнении массива он работает, как только ввожу в значение массива дробное число получается вот такое чудовведите сюда описание изображения

#include <iostream>
using namespace std;
int main()
{
    setlocale(LC_ALL, "rus");
    int first;
    int last;
    int* mas, n, sum;
    sum = 0;
    cout << "Введите размер массива: ";
    cin >> n;
    mas = new int[n];
    for (int i = 0; i < n; i++)
    {
        cout << "mas[" << i << "]= ";
        cin >> mas[i];
    }
    for (int i = 0; i < n; i++)
    {
        if (mas[i] % 2 == 0)
            sum += mas[i];
    }
    cout << "Сумма четных элементов массива равна " << sum;

    for (int i = 0; i < n; i++)
        if (mas[i] < 0)
        {
            first = i;
            break;
        }

    for (int i = n - 1; i >= 0; i--)
        if (mas[i] < 0)
        {
            last = i;
            break;
        }

    int sum1 = 0;
    for (int i = first + 1; i < last; i++)
        sum1 += mas[i];

    cout << " \nCумма элементов, находящихся между первым и последним отрицательным элементом равна " << sum1;

    for (int i = 0; i < n; i++)
    {
        if (mas[i] < 1 && mas[i] >= -1)
        {
            mas[i] = 0;
        }
    }
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < n - 1 - i; j++)
        {
            if (mas[j] == 0)
            {
                mas[j] = mas[j + 1];
                mas[j + 1] = 0;
            }
        }
    }
    cout << "\nСжатый массив: ";
    for (int j = 0; j < n; j++)
    {
        cout << mas[j] << " ";
    }
    cout << endl;
    return 0;
}

Ответы (0 шт):