Не выводит динамический массив
Всем привет, задача вроде легкая но я перепробовал много способов и не смог решить. Нужно что бы все записывалось в s[i] а потом так же вывелось по индексам допустим пользователь ввел 2 записалось под индексом s[0] потом ввел допустим 6 и записалось в s[1] в конечном результате все индексы которые пользователь ввел вывести, когда пользователь ввел "end". Помогите пожалуйста второй день ломаю голову. Я знаю что num 0 и for не выполняется но я много чего пробовал и тоже не получалось я не знаю что делать..
#include<iostream>
using namespace std;
int main() {
string n;
int num;
int* s = new int[num];
while (n != "end")
{
cin >> n;
for (int i = 0; i < num; i++)
cin >> s[i];
for (int i = 0; i < num; i++)
cout << s[i];
}
}
Ответы (1 шт):
вы делаете
int* s = new int[num];
а где вы получаете этот num?
std::cin >> num;
хотя бы сделали
вы делаете
for (int i = 0; i < num; i++) cin >> s[i];
что это такое? вы же должны вводить по ОДНОМУ числу
делайте
cin >> s[i];
i ++;
только перед циклом инициализируйте i
int i = 0;
вы делаете
for (int i = 0; i < num; i++) cout << s[i];
зачем вы выводите постоянно в цикле все это? выводить надо ПОСЛЕ того как закончен ввод всей последовательности
и еще хотя вы вначале выделяете массив из
numэлементов, но пользователь может ввести меньше кол-во элементов перед тем как введетend, поэтому выводить надо только введенные числа и только после того как ввод будет завершенвы постоянно требуете у пользователя ввод
ncin >> n;
чтобы проверит на ввод end - так делать не стоит
P.S.
вообще сначала пишите свой алгоритм текстом на бумаге и лишь потом пытайтесь его в код превратить
ваш алгоритм должен был бы выглядеть так:
запросить у пользователя максимальное кол-во элементов
выделить массив, содержащий максимальное кол-во элементов
запросить у пользователя ввод числа или
endесли введено
end- перейти к 8)преобразовать введённую строку в число
добавить полученное значение в массив по заданному элементу
увеличить номер заданного элемента на 1
вывести все значения массива от 0 до номера заданного элемента
если же использовать std::vector, тогда
и 2) не нужны
и 7) заменяются просто на
arr.push_back(value)
а 8) можно просто вывести через
for (const int value : arr)