Как вывести желаемое количество элементов в массиве? - PullRequest
0 голосов
/ 14 ноября 2018

Если я хочу напечатать single dimensional array с n количеством элементов.Могу ли я инициализировать array как array[n]?

#include "pch.h"
#include <iostream>

using namespace std;

int main()
{
    int n;

    std::cout << "Please enter the number of elements (n): ";
    std::cin >> n;

    int array[n];

    for (int i = 0; i <= n; i++) {
        std::cin >> array[n];
    }
    return 0; 
}

Ответы [ 2 ]

0 голосов
/ 14 ноября 2018

В C ++ вы не можете инициализировать массив переменной длины. Либо ты:

  • динамически распределять память

    int *array = new int[n];

    В этом случае вы не должны забывать освобождать позже с

    delete[] array;

  • Или вы можете использовать std::vector

    std::vector<int> array(n);

    , который будет освобожден при выходе из области действия.

Дополнительные ошибки:

  • Петля for должна выглядеть как

    for (int i = 0; i < n; i++)

    потому что при n элементах индексы массива изменяются от 0 до n - 1.

  • Для чтения ввода вы можете просто использовать

    std::cin >> array[n]

    Код, который вы написали с комбинацией >> и <<, не может работать.

0 голосов
/ 14 ноября 2018

Поскольку C ++ не поддерживает массивы переменной длины (VLA) в отличие от C99, вам придется использовать некоторые другие средства выделения памяти произвольного размера в C ++, например std::vector:

#include <iostream>

int main()
{
    int n;

    std::cout << "Please enter the number of elements (n): ";
    std::cin >> n;

    std::vector<int> foo(n);

                    // valid indexes range form 0 to size - 1: < n instead of <= n
    for (int i = 0; i < n; ++i)
        std::cin >> foo[i];
}

ТакжеВы смешали i и n в своем for -цикле.

std::cin >> array[n] << " ";
                     ^^^^^^

также не будет работать.

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