Задать вопрос
@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;
	}

}
  • Вопрос задан
  • 4943 просмотра
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Нетология
    Разработчик на C++
    12 месяцев
    Далее
  • Яндекс Практикум
    Разработчик C++
    9 месяцев
    Далее
  • Яндекс Практикум
    Разработчик C++ расширенный
    12 месяцев
    Далее
Решения вопроса 1
GavriKos
@GavriKos
Микропетпроджект - https://voidtrack.space/
Читайте про динамическое выделение памяти. Стандартная тема.
Можно еще коллекции из 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
Почитай про динамические массивы, вот материал Динам Массив
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
Инком Нижний Новгород
от 160 000 до 230 000 ₽
Инком Нижний Новгород
от 160 000 до 230 000 ₽
ITK academy Краснодар
от 220 000 до 300 000 ₽