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

Prośba o wyjaśnienie kodu -- spojler kodu 977 SPOJ

Object Storage Arubacloud
–1 głos
471 wizyt
pytanie zadane 17 kwietnia 2017 w SPOJ przez BinaryMan Stary wyjadacz (12,620 p.)
zmienione kategorie 17 kwietnia 2017 przez BinaryMan

Witam !
Czy mógłby mi ktoś wyjaśnić ten oto kod: 

 

#include <iostream>
using namespace std;

int main()
{
    int tab[100];
    int *p=tab;
    while(cin>>*p) p++;
    while(p>tab) { p--; cout<<*p<<" "; }
}

Pochodzi on ze SPOJ, a oto zadanie: 

http://pl.spoj.com/problems/TABLICA/

Z góry dziękuję za pomoc ! 

komentarz 17 kwietnia 2017 przez niezalogowany
Zła kategoria, poprawna: SPOJ.
1
komentarz 17 kwietnia 2017 przez BinaryMan Stary wyjadacz (12,620 p.)
Już poprawione, nie wiedziałem, że jest taka kategoria :)

2 odpowiedzi

+2 głosów
odpowiedź 17 kwietnia 2017 przez mtk3d Nałogowiec (46,690 p.)
Zmienna p, to wskaźnik, mówi o tym gwiazdka umieszczona przed nią. Poczytaj sobie co to są wskaźniki i jak można z nich korzystać odwołując się do elementów tablicy, wtedy na pewno zrozumiesz.
+2 głosów
odpowiedź 17 kwietnia 2017 przez piotrsz109 Stary wyjadacz (13,730 p.)
Skrypt jest w miarę prosty.

1. Deklarujesz tablicę.
2. Tworzysz wskaźnik do tej balicy.
3. Pętla wczytuje dane dopóki są i inkrementuje "wybrany element tablicy"
4. Pętla idzie od tyłu i wypisuje liczby.

Skąd masz ten kod? Sam go nie napisałeś, bo byś go rozumiał.
komentarz 17 kwietnia 2017 przez BinaryMan Stary wyjadacz (12,620 p.)

Nie, nie pisałem tego kodu sam, znalazłem go na forum, ale średnio go rozumiem. Gdy "odpalę" go w konsoli to tak jak by się wieszał jak wpiszę cyfry po spacji. 

Sam napisałem coś takiego ale SPOJ mi go odrzucał, wiem dlaczego go odrzucił:
 


#include <iostream>

using namespace std;

string numbers;

int main()
{


    cout<<"Tel me the number of the table: "<<endl;
    getline(cin, numbers);

    for(int i=numbers.size()-2; i>=0; i--)
    {
        cout<<numbers[i];
    }


    return 0;
}

 

komentarz 17 kwietnia 2017 przez piotrsz109 Stary wyjadacz (13,730 p.)

Kod powinnien wyglądać tak: 

#include <iostream>
 
using namespace std;
 
string numbers;
 
int main()
{
    getline(cin, numbers);
 
    for(int i=numbers.size()-1; i>=0; i--)
    {
        cout<<numbers[i];
    }
 
 
    return 0;
}

 

komentarz 17 kwietnia 2017 przez BinaryMan Stary wyjadacz (12,620 p.)
Niestety ten kod dalej nie działa
komentarz 6 grudnia 2019 przez mmarszik Mądrala (7,390 p.)

@BinaryMan,
Spróbuj wpisać Ctrl+D na koniec danych.

Podobne pytania

0 głosów
1 odpowiedź 176 wizyt
pytanie zadane 6 lutego 2018 w C# przez Kieszinho10 Początkujący (280 p.)
0 głosów
1 odpowiedź 157 wizyt
pytanie zadane 10 czerwca 2017 w Systemy operacyjne, programy przez ania16177 Nowicjusz (120 p.)
0 głosów
2 odpowiedzi 361 wizyt
pytanie zadane 19 lipca 2017 w SPOJ przez Jakub 0 Pasjonat (23,120 p.)

92,576 zapytań

141,426 odpowiedzi

319,651 komentarzy

61,961 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...