Mam problem z tym o to zadaniem : Antek z Zuzią często bawią się w pisanie liczb. Na kartce zapisują na przemian liczby cał
kowite – raz Zuzia,
raz Antek. Napisz program, który wczyta ciąg liczb napisany przez dzieci i wypisze
liczby, które kolejno pisało
każde z dzieci.
Wejście
Pierwszy wiersz wejścia zawiera jedną liczbę całkowitą
n(2≤n≤100 000), oznaczającą długość ciągu
liczb napisanego przez dzieci. Drugi wiersz zawiera
n
liczb całkowitych z zakresu od 1 do 1000, oddzielonych
spacjami, oznaczających kolejne liczby wypisane przez dzieci. Dzieci wypisywały liczby
na przemian: pierwszą
Zuzia, drugą Antek itd.
Wyjście
Twój program powinien wypisać dwa wiersze. W pierwszym wierszu powinien znaleźć s
ię ciąg liczb napisanych
przez Zuzię, a w drugim – ciąg liczb napisanych przez Antka. Liczby w wierszach należy ro
zdzielać spacjami.
Przykład
Dla danych wejściowych:
6
3 5 2 2 10 1
poprawnym wynikiem jest:
3 2 10
5 2 1
Trzeba tu wykorzystać : for i tablice.
Zapisz liczby do zaalokowanej tablicy na n elementów (lub użyj std::vector
) i wypisz na ekran w pętlach parzyste indeksy dla Zuzi i nieparzyste dla Antka.
Tworzysz dwie tablice.Pobierasz ilość liczb. Wczytujesz te liczby, raz do pierwszej tablicy, raz do drugiej. Później tylko wyświetlasz tablice. W czym masz problem?
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
int t[n];
for (int i=0;i<n;i+=2)
{cin >> t[i];
cout << t[i] << " ";}
cout << endl;
for (int e=1;e<n;e+=2)
{cin >> t[e];
cout << t[e]<< " ";}} To jest mój program ( przepraszam że nie ma oznaczeń komend ale jest nowy na forum jeszcze nie ogarniam), coś tu jest nie tak, ale ja nie mogę znaleźć błędu :(
Oddziel wczytywanie od wyswietlania. Bo wyświetlanie wygląda dobrze. Te oba cin'y wyciągnij do fora przed tymi dwoma istniejącymi. Wczytaj wszystkie liczby w nim po kolei.
int n;
cin >> n;
int t[n];
To nie jest poprawne. C++ nie ma VLA, więc pamięć na tablicę musisz przydzielić dynamicznie.
#include <iostream>
#include <vector>
int main()
{
int n;
std::cin >> n;
int* p = new int[n];
for (int i = 0; i < n; ++i) {
std::cin >> p[i];
}
for (int i = 0; i < n; i += 2) {
std::cout << p[i] << ' ';
}
std::cout << '\n';
for (int i = 1; i < n; i += 2) {
std::cout << p[i] << ' ';
}
std::cout << '\n';
delete[] p;
// lub polecane
std::vector<int> v(n);
for (std::size_t i = 0; i < v.size(); ++i) {
std::cin >> v[i];
}
// wypisanie tak samo jak wyżej dla tablicy
}