Paréntesis para cuatro operaciones en programación informática
# incluir " stdafx.h " # incluir & ltiostream & gt # incluir & lt stack & gt # incluir & lt string & gt usar espacio de nombres std stack & ltdouble & gtnum stack & ltchar & gtop; void dealString(String my){ // Cadena para operador numérico en la pila double Nownum = 0 for(int I = 0;i<my.length();i++){ if(my[I]>= '0' & amp& my[i]<= '9 '){ Nownum * = 10; nownum+= mi[I]-' 0 '; } else { num . push(Nownum = 0; op.push(mi [I]);};} num push( Nownum);}int inPriority(char a) {// Función de juicio de prioridad del operador switch(a){ case ' * ':case '/':return 2; escribe '+': case '-': return case; "(": retorno 3; caso ')': retorno 4 valor predeterminado: cout & lt& lt"error" & lt& ltendlreturn-1; doble acuerdo (doble n1, doble N2, charop){// Función de procesamiento de números switch (op) {case'+': devuelve N2+n 1; case '-': devuelve N2-n 1; case '* ': devuelve N2 * n 1; : return 0; }} double cal() { double num1, num2, num 3 = 0; char op1, op2num 1 = num pop(); pop(); op 1 = op . top(); op . pop(); while(op . size()>0){ if(in prioridad(op 1)= = 4){// Determinar si es un número de corchete derecho (núm 2); núm 1 = cal(); (); op . pop(); if(op . size()= = 0){ return acuerdo num(num 1, num2, op 1); (op . top())== 4){ op . pop(); num 2 = cal(); if(op . size()== 0){ return acuerdo num(num 1, num2, op 1); } } if(in Priority(op 1)== 3){//Determina si es un corchete izquierdo y devuelve num 1;} if(in Priority(op . top())= = 3){ num . ); op . pop(); return dealNum(num1, num2, op 1); 1, número 2, op 1); número 2 = número superior();
pop(); op 1 = op .top(); op .pop(); (); } } return dealNum(num1, num2, op 1); }int main() { while (1) {// Entrada en bucle, cierre directamente después del final con la cadena my; cout& lt"Fórmula de entrada: " < & ltendlgetline(cin, mío); repartString (mi); cout & lt& lt"El resultado es:"
———————————————— p>
Declaración de derechos de autor: este artículo es un artículo original del blogger kk de CSDN y sigue el acuerdo de derechos de autor CC 4.0 BY-SA. Adjunte el enlace de la fuente original y esta declaración al reimprimir.
Enlace original:/QQ_38130938/article/details/79531846