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

Program napisany poprawnie ale spoj ma znowu jakieś problemy... ;)

Object Storage Arubacloud
0 głosów
253 wizyt
pytanie zadane 26 maja 2016 w C i C++ przez DualOxygen Użytkownik (810 p.)

Witam chodzi mi o zadanie kalkulator próbowałem już kilku sposobów zarówno z wykorzystaniem zwykłej tablicy jak i teraz wektora ale spoj nie akceptuje mi zadania ;) btw w zadaniu jest napisane że mają się na wejściu pojawić zestawy danych oddzielonych spacjami a każdy kolejny zestaw ma być oddzielony endlinem a kompletnie nie wiem jak to zrobić bo domyślnie po cinie u mnie następuje przejście do następnego wiersza.

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

#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector <int> table(100);
int ile;
cin>>ile;
for(int i=0;i<=ile;i++)//dla 4=5 testow
{
char wybor;
cin>>wybor;
switch(wybor)
{
case '+':
    {
        int a,b;
        cin>>a;
        cin>>b;
        table[i]=a+b;
        cout<<endl;
        break;
    }
case '-':
    {
        int c,d;
        cin>>c>>d;
        table[i]=c-d;
        cout<<endl;
        break;
    }
case '*':
    {
     int e,f;
     cin>>e>>f;
     table[i]=e*f;
     cout<<endl;
     break;
    }
    case'/':
    {
     int g,h;
     cin>>g>>h;
     table[i]=g/h;
     cout<<endl;
     break;
    }
    case '%':
    {
     int s,j;
     cin>>s>>j;
     table[i]=s%j;
     cout<<endl;
     break;
    }
    default:
    {
    cout<<"Zle dane"<<endl;
    break;
    }
}

}
for (int z=0;z<=ile;z++)
{
    cout<<table[z]<<endl;
}
 return 0;
}

 

2 odpowiedzi

+1 głos
odpowiedź 26 maja 2016 przez kacperdyba Gaduła (3,290 p.)
wybrane 26 maja 2016 przez DualOxygen
 
Najlepsza

wektory ci tutaj nie potrzebne. Napiszę ci rozwiązanie w formie podpunktów, a ty przerobisz na kod stoi? laugh

1. Tworzysz pętle "do póki są wprodzane (char, int, int)

2) Switch (char):

a)+

- wypisz dodawanie int1 do int2

b)-

-wypisz odejmowanie int1 do int2

c)*

-wypisz mnożenie int1 do int2

d)/

-wypisz dzielenie int1 do int2

3) zakończ program

komentarz 26 maja 2016 przez DualOxygen Użytkownik (810 p.)
Nie do końca rozumiem podpunktu numer 1 miałbym zapisać pętle while wykoującą się wtedy i tylko wtedy gdy wpisywany jest kolejno znak i 2 int-y ? :))
komentarz 26 maja 2016 przez kacperdyba Gaduła (3,290 p.)
while(cin>>char>>int1>>int2)

{

//reszta kodu
}

 

komentarz 26 maja 2016 przez DualOxygen Użytkownik (810 p.)
Dziękuje bardzo zadanie zaliczone :) Natomiast dalej nie wiem co było złego w tym bardziej rozgnieżdżonym kodzie co ja przysłałem.
komentarz 26 maja 2016 przez kacperdyba Gaduła (3,290 p.)
Twój program wypisywał dane dopiero na końcu. W zadaniu powinien wypisywać po każdym zapytaniu (tak jak teraz). Dodatkowo w switch'u dodałeś niepotrzebne cout << endl;

Dodatkowo polecam ci się jak najszybciej przerzucić z cin i cout na printf() i scanf(), poniewarz większość zadań na spoj'u jest pod nie pisana i zwykly cout nie wyrabia się w czasie.

 

Pozdrawiam,

Kacper
0 głosów
odpowiedź 26 maja 2016 przez Garniturek Użytkownik (820 p.)
Ta pętla wypisująca table[z] jest bezsensu. Po prostu zrób tak, aby zamiast zamisywać wynik do tablicy odrazu go zapisywało, np. zamiast table[i]=g/h;, zrób cout<<g/h<<endl;

Podobne pytania

0 głosów
1 odpowiedź 438 wizyt
pytanie zadane 28 maja 2020 w C i C++ przez Stefan Marzec Użytkownik (710 p.)
0 głosów
2 odpowiedzi 294 wizyt
pytanie zadane 27 czerwca 2019 w SPOJ przez magda_19 Gaduła (3,080 p.)
0 głosów
1 odpowiedź 259 wizyt
pytanie zadane 6 maja 2019 w C i C++ przez CzekiBreki Nowicjusz (170 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 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!

...