динамические массивы
Подскажите, пожалуйста, как реализовать данную задачу:Изначально не известно сколько пользователь введет чисел и когда он закончил вводить ,мы фиксируем количество введенных чисел и заполняем введенными числами массив.Например введено 12 23 45 67 78 900. Всего введено 6 чисел и на выходе мы имеем массив из этих чисел.Нужно реализовать без использования векторов и классов ,только базовые понятия.Можно использовать динамический массив.заранее спасибо.
Ответы (1 шт):
Автор решения: Agzam
→ Ссылка
Код
#include <iostream>
#include <conio.h>
#include <string>
using namespace std;
#define KEY_ENTER 13
int main()
{
string input;
int len = 0;
int* arr = new int[0];
while (true) {
if (_kbhit()) { // Когда клавиша нажата
int code = _getch(); // получаем код клавиши
if (code == KEY_ENTER) {
int inputLen = input.size();
cout << endl;
if (inputLen != 0) { // Если ничего не ввели
// Добовляем input в arr
len++;
int* lastArr = arr;
arr = new int[len];
for (int i = 0; i < len - 1; i++)
{
arr[i] = lastArr[i];
}
arr[len - 1] = stoi(input); // string -> int
} else {
// выводим массив
cout << "Array:";
for (int i = 0; i < len; i++)
{
cout << " " << arr[i];
}
return 1;
}
input = ""; // сбравываем input
}else{
input += (char)code; // добовляем нажатую клавишу к input
cout << (char)code;
}
}
}
}
Что бы закончить ввод массива надо нажать Enter, не вводя число
Результат:
10
20
5
Array: 10 20 5