Witam, zastanawiam się nad rozwiązaniem zadania:
Napisz program, który wczytuje z wejścia ciąg liczb i wypisuje go w odwróconej kolejności.
Wejście
Na wejście programu podana zostanie pewna nieokreślona, ale niewielka ilość liczb całkowitych rozdzielonych spacjami.
Wyjście
Na wyjściu ma się pojawić ciąg liczbowy, którego i-ta pozycja jest równa (n+1-i)-tej liczbie wczytanej z wejścia, gdzie n to ilość wczytanych liczb. Poszczególne liczby należy rozdzielić spacjami.
Przykład
Wejście:
1 2 3
Wyjście:
3 2 1
"wypociłem: taki kod:
#include <iostream>
std::string input;
int main()
{
getline(std::cin, input);
int output = input.length();
for (int i=output-1; i>=0; i--)
{
std::cout << input[i];
}
}
który nie przeszedł testu, choć wypluwa w pełni poprawną odpowiedź, przecież klasa STRING jest sama w sobie tablica ?
Natomiast drugi kod test przeszedł poprawnie:
#include <iostream>
int input[200];
int output =0;
int main()
{
while (std::cin>>input[output])
{
output++;
}
for (int i=output-1; i>=0; i--)
{
std::cout << input[i]<< " ";
}
}
Czy problem leży po stronie tego, że w przypadku Stringa wielkość tablicy była nieograniczona, czy może zadanie samo w sobie żądało użycia znanego rozmiaru tablicy? Czuje się w tym przypadku trochę zagubiony...myślałem, że nie muszę trzymać się sztywnych ram przy rozwiązywaniu tego typu zadań.
Podrzuci ktoś jakiś ciekawy artykuł, którym mógłbym uzupełnić wiedzę apropo tablic ?