Кидает в документ vector

210
17 июля 2017, 16:00
#include <iostream>
#include <string>
#include <cmath>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
    int i, k, n;
    double s = 0, j;
    cin >> n;
    vector <int> v(n);
    for (i = 0; i < n; ++i)
    {
        cin >> v[i];
        s += v[i];
    }
    s /= 2;
    j = s;
    sort(v.begin(), v.end());
    i = 0;
    while (s >= 0)
    {
        s -= v[i];
        ++i;
    }
    k = i;
    int z = 0;
    i = n - 1;
    while (j >= 0)
    {
        s -= v[i];
        ++z;
        --i;
    }
    if (n == 1)
        cout << 1;
    else {
        if (k < z)
            cout << (k + 1);
        else
            cout << (z + 1);
    }
    //system("pause");
    return 0;
}

Answer 1

Забавная у вас программа...
Допустим, после ввода и

s /= 2;
j = s;

получим j>0. И сколько после этого будет работать вот этот цикл:

while (j >= 0)
{
    s -= v[i];
    ++z;
    --i;
}

Ровно до момента i < 0 - т.е. выхода за границу массива... что вы и продемонстрировали на рисунке.

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

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

Почему не отлавливается исключение?

289
Написание программы под Linux (Orange Pi)

Написание программы под Linux (Orange Pi)

Добрый деньНеобходимо написать программу, которая будет запускаться в Debian на устройстве Orange Pi

371
Плагин JQuery для события pan

Плагин JQuery для события pan

Приветствую! Подскажите пожалуйста, какой плагин нужен для JQuery события Pan-х (перетаскивание объекта в горизонтальной плоскости) и как его...

200
Javascript Сразу свернутый div. SlideToggle();

Javascript Сразу свернутый div. SlideToggle();

ПриветИспользуемую SlideToogle();

244