PDA

View Full Version : [C] Notazione Polacca 2


xbubbax
23-03-2008, 14:57
Ho fatto questo esercizietto per testare l'algoritmo. Diciamo che può prendere solo numeri a una cifra, mi interessa sapere se è giusto l'algoritmo. Però stampa un risultato sbagliato, come mai?

#include <stdio.h>
#include <stdlib.h>
#include "funzioni_pile.h"

int Polacca(char s[]){

int i=0;
pilaPtr P=NULL;
char c;
int op1=0;
int op2=0;
int risultato=0;

while(c=s[i]){
i=i+1;
if(c!='+' && c!='*'){
if(c!='-' && c!='/'){
P=Push(P,c-'0');}}else{
op1=Pop(P);
op2=Pop(P);
switch(c){
case'+':P=Push(P,op1+op2);break;
case'-':P=Push(P,op1-op2);break;
case'/':P=Push(P,op1/op2);break;
case'*':P=Push(P,op1*op2);break;}}}
return Pop(P);}




int main(void){

char s[6]={'3','2','5','+','-'};

printf("%d\n", Polacca(s));

system("PAUSE");}

cionci
23-03-2008, 16:38
xbubbax: si fa così: fino a quando non presenti i sorgenti indentati correttamente io ti chiudo tutti i thread che apri.
Non è possibile che dopo che ti si fa notare 10 volte la stessa cosa voglia continuare imperterrito a non indentare il tuo codice.
Se non ti interessa indentare, fallo almeno come forma di rispetto per chi legge il tuo codice. Esistono dei tool automatici per indentare il codice, anche integrati negli ambienti di sviluppo, usali.