i folgende Funktion zu schreiben, ich versuche, es wird 1 zurück, wenn prcd
von op1>op2
(und wir gehen davon aus +-*/()
nur Zeichen sind)Wie Charakter mit) oder vergleichen (in Steueranweisungen?
int prcd(char op1,char op2)
{
switch(op1)
{
case '(':
return 0;
break;
case ')':
if(op2=='(') //doesn't work
return
case '*':
case '/':
return 1;
break;
case '+':
case '-':
if(op2=='*' ||op2=='/')
return 0;
else return 1;
break;
default:
return printf("invalid");
}
}
Was meinen Sie mit "funktioniert nicht"? Was passiert, wenn Sie Ihre Funktion aufrufen? *Wie nennst du das? Mit welchen Argumenten? Können Sie bitte versuchen, ein [minimales, vollständiges und verifizierbares Beispiel] (http://stackoverflow.com/help/mcve) zu erstellen und uns zu zeigen? –
Es gibt ein fehlendes Semikolon nach der Rückkehr in die Zeile unter dem Kommentar, aber das ist nicht das Problem, ist es –
Nur als ein Punkt des Stils, brauchen Sie keine 'break' oder' else' nach einer 'return' Anweisung , da es nicht ausgeführt wird. Obwohl dein 'Fall') ': 'zum nächsten Fall durchfallen kann, da der' return' bedingt ist und der Fall keinen' break; 'hat ;-) –