|
|||||||
|
|
|
![]() |
|
|
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: 05:02.




















