Пользователь загружает массив целых чисел из двоичного файла. Программа найдет медиану и выведет на консоль - PullRequest
0 голосов
/ 14 апреля 2020
void MedianArray(ifstream& fin, Array a, int n)
{
    int temp;
    fin.read((char*)&n, sizeof(n));
    a = new int[n];
    for (int i = 0;i < n - 1;i++) {
        for (int j = i + 1;j < n;j++) {
            fin.read((char*)&a[i], sizeof(a[i]));
            fin.read((char*)&a[j], sizeof(a[j]));
            if (a[i] < a[j]) {
                temp = a[i];
                a[i] = a[j];
                a[j] = temp;
                i++;
            }
        }
    }
    if (n % 2 == 1) {
        cout << "Median : ";
        int l = n / 2;
        cout << (double)a[l] << endl;
    }
    else {
        cout << "Median : ";
        cout << (double)(a[n / 2]+a[n/2-1])/2 << endl;
    }
}

У меня проблема с этой функцией. Пример n = 3 A [0] = 3 a [1] = 9 a [2] = 4, если справа с cout 4 медиана, но cout 3 медиана. Это бинарный файл функции чтения файла, затем cout медиана этого файла

Я отсортировал массив, затем нашел медиану, но где-то это неправильно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...