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

Zadanie SPOJ - CALC - Kalkulator

Object Storage Arubacloud
0 głosów
3,874 wizyt
pytanie zadane 13 czerwca 2016 w C i C++ przez Hellgrush Nowicjusz (230 p.)
Witam!

Czy ktoś mógłby wskazać mi gdzie znajduje się błąd w operacji dodawania, bo kurczę nie mam zielonego pojęcia, reszta opcji działa :)

Kod programu: https://wklej.to/G3gWJ

Link do zadania: http://forum.pasja-informatyki.pl/150038/zadanie-spoj-calc-kalkulator
komentarz 13 czerwca 2016 przez niezalogowany

Link do zadania: http://forum.pasja-informatyki.pl/150038/zadanie-spoj-calc-kalkulator

To się nazywa rekurencja :P

komentarz 13 czerwca 2016 przez Hellgrush Nowicjusz (230 p.)
Racja! Zły link :)
komentarz 14 lutego 2017 przez Krupenz Początkujący (360 p.)

Też właśnie robię to ćwiczenie. Mam problem z wywoływaniem nieokreślonej liczby działań. Nie mialem innego pomysłu ( ten jest nie do przyjęcia na spoju, ale przynajmniej działa). x podawane na samym początku oznacza liczbę operacji, uzależniłem od niego tak samo inne pętle. Jak sobie z tym poradzić aby program działał tak jak wymaga tego SPOJ? :/

int main()
{
int x, i, z;
int a[100]; int b[100];
char znak[100];

    cin>>x;

   for(i=0;i<x;i++)
        {
            cin>>znak[i]>>a[i]>>b[i];
        };
    for(z=0;z<=x;z++)
    {
        switch(znak[z])
        {

            case '+': cout<<a[z]+b[z]<<endl; break;
            case '-': cout<<a[z]-b[z]<<endl; break;
            case '*': cout<<a[z]*b[z]<<endl; break;
            case '/': cout<<a[z]/b[z]<<endl; break;
            case '%': cout<<a[z]%b[z]<<endl; break;
        };
    }


    return 0;
}

 

1 odpowiedź

+1 głos
odpowiedź 13 czerwca 2016 przez Radfler VIP (101,030 p.)

Na wejście programu podana zostanie pewna nieokreślona liczba zestawów danych.

Twój program jest w stanie przyjąć jedynie 4 zestawy danych. Ponadto w pętlach for odwołujesz się do czwartego indeksu tablicy, co skutkuje niezidentyfikowanym zachowaniem. Powinieneś raczej utworzyć dwie zmienne typu long oraz zmienną typu char i wczytywać je bezpośrednio w pętli:

char op; // operator
long a, b; // operandy
while(cin >> op >> a >> b) {
  // obliczanie, wypisanie
}
komentarz 13 czerwca 2016 przez Hellgrush Nowicjusz (230 p.)
Bardzo dziękuję za cenne uwagi! :)

Podobne pytania

0 głosów
1 odpowiedź 619 wizyt
pytanie zadane 27 września 2017 w C i C++ przez adam456 Nowicjusz (120 p.)
0 głosów
1 odpowiedź 326 wizyt
pytanie zadane 8 września 2019 w C i C++ przez amelia.cpp Obywatel (1,860 p.)
–3 głosów
1 odpowiedź 481 wizyt

92,556 zapytań

141,404 odpowiedzi

319,561 komentarzy

61,942 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!

...