|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Apr 2007
Messaggi: 381
|
[C] Notazione Polacca Semplice Esercizio
Qualcuno mi aiuta a capire dove sbaglio in questo esercizio sulla notazione polacca?
Codice HTML:
#include <stdio.h> #include <stdlib.h> #include "funzioni_pile.h" int Notazione_Polacca(char s[]) { pilaPtr P=NULL; int i=0; 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; }}} risultato=Pop(P); return risultato;} int main(void){ pilaPtr P=NULL; char s[10]={'2','1','5','1','-','*','+','2','-'}; printf("%d\n", Notazione_Polacca(s)); system("PAUSE");} |
![]() |
![]() |
![]() |
#2 |
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
[OT] ahiahiahi, pessima formattazione, cazziatone in arrivo...
![]() |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Apr 2007
Messaggi: 381
|
pessima formattazione?????????????????
ma se ho perso 10 minuti solo per indentare perchè la mia solita indentazione non era buona... ma come c... si indenta? |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Apr 2006
Messaggi: 22462
|
sicuramente con la clausola while che invece di confrontare assegna bene non deve funzionare.
le indentature si fatto con il tasto tab
__________________
amd a64x2 4400+ sk939;asus a8n-sli; 2x1gb ddr400; x850 crossfire; 2 x western digital abys 320gb|| asus g1
Se striscia fulmina, se svolazza l'ammazza |
![]() |
![]() |
![]() |
#5 | |
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
Quote:
Codice:
{ ... { ... { ... } ... } ... } ![]() |
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Sbagli a usare la notazione polacca, sbagli la formattazione e sbagli a usare il C.
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
![]() |
![]() |
![]() |
#7 |
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
con l'aiuto del formattatore automatico di Visual C++ 2008 ho ottenuto questo, non ancora perfetto ma già mille volte più leggibile:
Codice:
#include <stdio.h> #include <stdlib.h> #include "funzioni_pile.h" int Notazione_Polacca(char s[]) { pilaPtr P=NULL; int i=0; 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; } } } risultato=Pop(P); return risultato; } int main(void) { pilaPtr P=NULL; char s[10]={'2','1','5','1','-','*','+','2','-'}; printf("%d\n", Notazione_Polacca(s)); system("PAUSE"); } |
![]() |
![]() |
![]() |
#8 | |
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
Quote:
![]() |
|
![]() |
![]() |
![]() |
#9 | |
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Quote:
![]()
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
![]() |
![]() |
![]() |
#10 |
Bannato
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
|
|
![]() |
![]() |
![]() |
#11 | |
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Quote:
![]()
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:43.