Credo di avere scritto il source tutto giusto, while si usa come l'ho usato, però perche si comporta in modo strano il programma? =(

codice:
#include <stdio.h>
#define PER_ARRAY 50

int main () {
	
	int partenza = 0;	
	int numeri[PER_ARRAY];
	char operatore[PER_ARRAY];
	char *puntatore_operatore;
	puntatore_operatore = operatore;
	
	
	printf("Calcolatrice V0.3 \n");


	
	
		while(operatore[partenza] != '=') 
	{
		
	    printf("Numero %d: \n", partenza);
		scanf( "%d", &numeri[partenza]);
		
	
		while ((operatore[partenza] != '-') &&  (operatore[partenza] != '/') && (operatore[partenza] != '+') &&   (operatore[partenza] != '*') &&    (operatore[partenza] != '=')) {
		
		printf("Inserisci il tipo di operazione: + - * / \n Invece per il risultato digita = \n");
		scanf(" %c",&operatore[partenza]);	
		}
			partenza++;
		
		}
		
	
	int i, risposta= numeri[0];
	for(i = 1; i < partenza; i++)
	{
		if(operatore[(i - 1)]  == '*') {
			risposta *= numeri[i];
		}
		else if(operatore[(i - 1)]  == '/'){
			risposta /= numeri[i];
		}
		else if(operatore[(i - 1)]  == '-'){
			risposta -= numeri[i];
		}
		else if(operatore[(i - 1)]  == '+'){
			risposta += numeri[i];
		}
	}
	printf("Il risultato è: %i", risposta);
	
	
	
	return 0;
}

Numero 0:
1
Inserisci il tipo di operazione: + - * /
Invece per il risultato digita =
+
Numero 1:
4
Inserisci il tipo di operazione: + - * /
Invece per il risultato digita =
+
Numero 2:
5
Inserisci il tipo di operazione: + - * /
Invece per il risultato digita =
/
Numero 3:
2
Inserisci il tipo di operazione: + - * /
Invece per il risultato digita =
=
Numero 4:



al posto di uscire numero 4 doveva stamparmi il risultato perche ho inserito = come mai fa questo?