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