@Slavon7

Как сделать так чтобы пользователь мог сам ввести размер массива?

Не получается сделать так чтобы я мог в терминале вводить размерность массива

#include <iostream>
#include<ctime>
using namespace std;



void main()
{
	srand(time(NULL));

	int SIZE;
	int arr[SIZE];
	cin >> SIZE;
	
	bool alreadyThere;

	for (int i = 0; i < SIZE;)
	{
		alreadyThere = false;
		int newRanomValue = rand() % 20;

		for (int j = 0; j < i; j++)
		{
			if (arr[j] == newRanomValue)
			{
				alreadyThere = true;
				break;
			}
		}

		if (!alreadyThere)
		{
			arr[i] = newRanomValue;
			i++;
		}

	}

	for (int i = 0; i < SIZE; i++)
	{
		cout << arr[i] << endl;
	}

}
  • Вопрос задан
  • 4402 просмотра
Решения вопроса 1
GavriKos
@GavriKos
Читайте про динамическое выделение памяти. Стандартная тема.
Можно еще коллекции из std зацепить
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
6db
@6db
Узнай про динамический массив и будет все хорошо!
И проверка alreadyThere не работает без учета [i+1] хотя бы. Итерация по j здесь неактуальна.

#include <iostream>
#include <ctime>

using namespace std;

void main()
{
    srand(time(NULL));
    setlocale(LC_ALL, "rus");

    int SIZE;
    cout << "Введите SIZE: "; cin >> SIZE;
    
    int *array = new int[SIZE]; //Динамический массив
    

    for (int i=0; i < SIZE; i++)
    {
        array[i] = rand() % 20; 
        cout << array[i] << endl;
    }

    delete[] array;
}
Ответ написан
sabone
@sabone
beginner developer
Почитай про динамические массивы, вот материал Динам Массив
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы