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?