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

kalkulator - spoj

0 głosów
71 wizyt
pytanie zadane 10 września w C i C++ przez Pawel1452 Początkujący (270 p.)

https://pl.spoj.com/problems/CALC/ - link do zadania

Nie wiem dlaczego nie przyjmuję mi zadania.

#include <iostream>

using namespace std;
string dzialanie;
int a,b,c;
int main()
{

    getline(cin,dzialanie);




    for(int i=0; i<dzialanie.length(); i=i+6)
    {
        
        if(dzialanie[i+2]=='1')
            a=1;
        else if(dzialanie[i+2]=='2')
            a=2;
        else if(dzialanie[i+2]=='3')
            a=3;
        else if(dzialanie[i+2]=='4')
            a=4;
        else if(dzialanie[i+2]=='5')
            a=5;
        else if(dzialanie[i+2]=='6')
            a=6;
        else if(dzialanie[i+2]=='7')
            a=7;
        else if(dzialanie[i+2]=='8')
            a=8;
        else if(dzialanie[i+2]=='9')
            a=9;
        else if(dzialanie[i+2]=='0')
            a=0;



            if(dzialanie[i+4]=='1')
            b=1;
        else if(dzialanie[i+4]=='2')
            b=2;
        else if(dzialanie[i+4]=='3')
            b=3;
        else if(dzialanie[i+4]=='4')
            b=4;
        else if(dzialanie[i+4]=='5')
            b=5;
        else if(dzialanie[i+4]=='6')
            b=6;
        else if(dzialanie[i+4]=='7')
            b=7;
        else if(dzialanie[i+4]=='8')
            b=8;
        else if(dzialanie[i+4]=='9')
            b=9;
        else if(dzialanie[i+4]=='0')
            b=0;


if(dzialanie[i]=='+')
    cout<<a+b<<endl;
    if(dzialanie[i]=='-')
        cout<<a-b<<endl;
    if(dzialanie[i]=='*')
        cout<<a*b<<endl;
    if(dzialanie[i]=='/')
        cout<<a/b<<endl;

if(dzialanie[i]=='%')
        cout<<a%b<<endl;


    }



}

 

komentarz 10 września przez tangarr Nałogowiec (38,440 p.)

Nawet nie wiem jak to skomentować.
Przemyśl sobie następujące przykłady:

+ 1 11
+ 1     1
    +      1   1
+         1111111111          11111

Skąd założenie, że twoje liczby zawsze są jednocyfrowe i że są oddzielone dokładnie jedną spacją.
Podpowiedź: poczytaj o klasie stringstream.

komentarz 11 września przez tkz Mądrala (6,580 p.)
String jest zbędny, typy POD wystarczą. Char i switch będzie optymalny.

2 odpowiedzi

0 głosów
odpowiedź 11 września przez Inn Obywatel (1,120 p.)
Poczytaj o instrukcji switch
0 głosów
odpowiedź 11 września przez j23 VIP (106,380 p.)

Ta pętla tak powinna wyglądać:

char dzialanie;
int a, b;

while (std::cin >> dzialanie >> a >> b) {
    /* tu liczysz i wyświetlasz */
}

 

Podobne pytania

0 głosów
1 odpowiedź 85 wizyt
pytanie zadane 8 września w C i C++ przez amelia.cpp Obywatel (1,140 p.)
0 głosów
1 odpowiedź 67 wizyt
pytanie zadane 22 grudnia 2018 w C i C++ przez Natalia Hołub Nowicjusz (120 p.)
0 głosów
1 odpowiedź 185 wizyt
pytanie zadane 23 grudnia 2017 w SPOJ przez michal12334 Obywatel (1,470 p.)
Porady nie od parady
Forum posiada swój własny serwer Discord, dzięki któremu będziesz mógł po prostu pogadać z innymi Pasjonatami lub zapytać o jakiś problem. Podstrona z chatem znajduje się w menu pod ikoną człowieka w dymku.IRC

66,495 zapytań

113,266 odpowiedzi

239,870 komentarzy

46,633 pasjonatów

Przeglądających: 264
Pasjonatów: 4 Gości: 260

Motyw:

Akcja Pajacyk

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

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...