@GoodOrlov

Ввести N целых чисел в 1-мерный массив. Вычислить количество элементов массива=0 и сумму их индексов. Как реализовать динамический массив?

То есть пользователь вводит N чисел в массив. То есть нельзя создать массив на 10 мест и прогнать цикл. Вдруг пользователь наберет 2 символа, то есть надо будет как-то закончить... Как здесь быть ?

Посчитать количество 0 и сумму их индексов не составит труда... Но вот создать Динамический массив..
При этом НЕ просив пользователя задать количество символов и тем самым определив размер массив (переменная и все такое) ... или по другому никак ?

Как вы бы сделали ?

В общем кроме как
int main()
{
    cout << "Enter array size";
    int size;
    cin >> size;
    int *arr = new int[size];
}

Этого решений нет...
Видимо я просто усложняю сам себе работу
  • Вопрос задан
  • 3223 просмотра
Решения вопроса 1
lastuniverse
@lastuniverse
Всегда вокруг да около IT тем
18 лет не программил на С и C++, поэтому могут быть ошибки)

#include <iostream>
#include <cstdlib>
void main(void){
    // переменная для общего колличество значений
    int n;

    // переменная для колличества значений==0
    int zero = 0;
    // переменная для суммы индексов со значениями==0
    int zeroindex = 0;

    // ввод пользователем колличества значений
    std::cout << "введите колличество значений:";
    std::cin >> n;

    // Выделение памяти, достаточной для массива из n int
    int* arr = (int*)std::malloc(n*sizeof(int));

    // ввод пользователем n значений
    for (int i = 0; i < n; i++ ){
        std::cout << "введите значение №" << i << ":";
        std::cin >> arr[i];
        // если введен 0 то увеличиваем счетчик zero
        if( arr[i] == 0){
            zero++;
            zeroindex+=i;
        }
    }

    // выводим результаты расчетов
    std::cout << "колличество значений равных нулю:" << zero;
    std::cout << "сумма их индексов:" << zeroindex;

    // освобождаем выделеную память перед выходом
    std::free(arr);
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
mindtester
@mindtester
http://iczin.su/hexagram_48
обычно используют коллекции (или векторы или списки), которые ведут себя именно как динамические массивы. вся механика скрыта "под капотом". просто берете подходящее из числа готовых шаблонов, и пользуетесь

плюсовую специфику изучать придется самостоятельно. в шарпе наиболее подходящим был бы List<int>
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы