• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Spoj - odwrócona tablica

VPS Starter Arubacloud
0 głosów
729 wizyt
pytanie zadane 21 sierpnia 2019 w C i C++ przez cupoforanges Początkujący (380 p.)

Witam!
Od pewnego czasu próbuję rozwiązać to zadanie ze spoja. link - https://pl.spoj.com/problems/PP0502B/

Oto kod: 

 

#include <iostream>

using namespace std;

int n;//liczba testow
int a[100];//tablica

int main()
{
    cin >> n;
    {
        for(int i = 0; cin >> a[i]; i ++)
        {
        }
        
        for(int i = i-1; i >=0; i--)
        {
            cout << a[i] << " ";
        }
    }

    return 0;
}

Czy ktoś mógłby mi wskazać błąd?

Dziękuję i pozdrawiam!

1 odpowiedź

0 głosów
odpowiedź 21 sierpnia 2019 przez tangarr Mędrzec (155,140 p.)
wybrane 21 sierpnia 2019 przez cupoforanges
 
Najlepsza
Tu są same błędy :)
Algorytm powinien wyglądać tak:
1. Wczytaj N
2. Utwórz tablicę N-elementową
3. Wczytaj dane do tablicy
4. Wyświetl dane od końca (od indeksu N-1 do indeksu 0)
1
komentarz 21 sierpnia 2019 przez tangarr Mędrzec (155,140 p.)

Chyba zapomniałeś że dla każdego testu najpierw wczytujesz liczbę k oznaczającą ilość liczb do odwrócenia.

cin >> k

a następnie wczytujesz k liczb do tablicy
 

for (int j=0; j<k; j++) {
    cin >> a[j];
}

Dzięki temu wczytujesz dokładnie tyle liczb ile program oczekuje i nie musisz wymuszać zamknięcia strumienia odczytu.

Edit: Zmieniłem zmienną i na j, żeby uniknąć niedomówień. Takie przesłanianie zmiennych może zakończyć się tragicznie.

komentarz 21 sierpnia 2019 przez cupoforanges Początkujący (380 p.)

Z tego wynika, że nie: 

Wejście:
2
7 1 2 3 4 5 6 7
3 3 2 11

Wyjście:
7 6 5 4 3 2 1
11 2 3

Nie ma tu żadnego ustalania ilości liczb do odwrócenia

1
komentarz 21 sierpnia 2019 przez tangarr Mędrzec (155,140 p.)
7 1 2 3 4 5 6 7

7 liczb (1 2 3 4 5 6 7). Po odwróceniu 7 6 5 4 3 2 1

3 3 2 11

3 liczby (3 2 11). Po odwróceniu 11 2 3

komentarz 21 sierpnia 2019 przez cupoforanges Początkujący (380 p.)
Rzeczywiście! Mój błąd, powinienem zwracać większą uwagę na polecenia. Dziękuję!
1
komentarz 21 sierpnia 2019 przez cupoforanges Początkujący (380 p.)

Oto mój kod jeśli byłbyś ciekawy: 

 

#include <iostream>

using namespace std;

int n;//liczba testow
int a[100];//tablica
int k=0;

int main()
{
    cin >> n;

    for(int i = 0; i < n; i++)
    {
        cin >> k;

        for(int i = 0; i < k; i ++)
        {
            cin >> a[i];
        }

        for(int i = k-1; i >=0; i --)
        {
            cout << a[i] << " ";
        }
    }

    return 0;
}

Jeszcze raz dzięki za pomoc!!

Podobne pytania

0 głosów
1 odpowiedź 715 wizyt
pytanie zadane 11 sierpnia 2018 w SPOJ przez Piotr Błaszczak Bywalec (2,890 p.)
0 głosów
1 odpowiedź 642 wizyt
+1 głos
1 odpowiedź 344 wizyt
pytanie zadane 18 lipca 2022 w Java przez Ada3141592654 Początkujący (270 p.)

93,022 zapytań

141,986 odpowiedzi

321,288 komentarzy

62,367 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...