Как вывести массив в столбик?

Рейтинг: 1Ответов: 1Опубликовано: 14.04.2011

Как вывести массив (в С или С++) с определённым параметром в столбик. Например: есть массив от -100 до 100, вывести массив в таком порядке: минусовые элементы влево, плюсовые вправо и нули по середине.

Ответы

▲ 2
int chooseColumn(int value) {
    if (value < 0) {
        return 0;
    } else if (value == 0) {
        return 1;
    } else {
        return 2;
    }
}

std::vector<std::vector<int>> columns(3);
int values[size]; 
...
for (size_t i = 0; i < size; ++i) {
    columns[chooseColumn(value[i])].push_back(value[i]);
}

size_t maxColumnSize = 0;
for (int i = 0; i < 3; ++i) {
    maxColumnSize = std::max(maxColumnSize, columns[i].size());
}
for (int line = 0; i < maxColumnSize; ++i) {
    for (int column = 0; column < 3; ++column) {
        if (columns[column].size() < line) {
            std::cout << column[column][line];
        }
        std::cout << '\t';
    }
    std::cout << std::endl;
}