Plus i minus to jedyne co widze

0

Witam! Zmagam się z kolejnym prostym zadankiem (kalkulator z rejestrem), i niestety występuje kolejny błąd którego nie mogę zrozumieć :) Otóż:

#include <stdio.h>

int main(void)
{
    char ch;
    int a,b,num[10]={0,0,0,0,0,0,0,0,0,0};

    while((scanf("%c%d%d",&ch,&a,&b))!=EOF){
        switch(ch){
            case 'z':
                num[a]=b;
                break;
            case '+':
                printf("%d\n",num[a]+num[b]);
                break;
            case '-':
                printf("%d\n",num[a]-num[b]);
                break;
            case '*':
                printf("%d\n",num[a]*num[b]);
                break;
            case '/':
                printf("%d\n",num[a]/num[b]);
                break;
            case '%':
                printf("%d\n",num[a]%num[b]);
                break;
        }
    }
    return 0;
} 

Podana funkcja działa na wszystkie inne operacji oprócz "+" i "-"! Kiedyś też miałem podobny błąd, ale nie jestem w stanie znaleźć tamtego programu i sprawdzić jak go rozwiązałem. Proszę o pomoc i poradę :)

Pozdrawiam

1

Brakuje spacji: http://ideone.com/slIQ2t

0

Hmm, ale dla innych zestawów dalej nie wczytuje :( np. takie z przykładu w zadaniu:
z 3 6
z 1 89
z 2 60
z 0 11

  • 0 1
  • 1 2
  • 2 3
    / 3 0
    % 3 1

Tego plusa i minusa dalej jakoś pomija :(

0

Chrzani waść: http://ideone.com/QVuYuv

0

Ojej, rzeczywiście :) Sędzia zaakceptował, lecz u mnie w kompilatorze wyniki pojawiały się z opóźnieniem, tzn np. z 3 6
z 1 89
z 2 60
z 0 11

  • 0 1
  • 1 2
    i dopiero w tym momencie 100

Ciekawy jestem dlaczego :O

1

Zmień format na " %c %d %d" - spacja każe pożreć białe znaki.

0

Ooo już wszystko działa :) Kolejny raz dzięki za pomoc!

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0