Programación de brackets
# incluir & ltstdio.h & gt
# incluir & ltstring.h & gt
char s 1[100];
flotador S2[100];
int n2
void cal(int x){
interruptor(x){
Caso 1:S2[N2-2]+= S2[N2-1]; romper;
Caso 2: S2[N2-2]-= S2[N2-1];
Caso 3: S2[N2-2]* = S2[N2-1]; romper;
Caso 4: if(S2[N2-1])S2[N2-2]/= S2[N2-1]; de lo contrario, arroja 0;
}
N2-;
}
Callall flotante(){
int pila[100], ns = 0;
int n 1 = strlen(s 1);
fin del número bool = 0; ;
for(int I = 0;i<n 1;){
if(s 1[I]>47 &&s 1[I]< ;58){
if(numberend) arroja 1; number end = 1;
sscanf(s1+i, " %f ", & ampS2[n2++]); s 1[I]& gt; 47 & amp& amplificadores 1[I]& lt;|s1[i]== ' )i++; * sop = "(+-*/)";
int op=strchr(sop, s 1[i++])-sop
if(op<0||op>6; )tirar 3;
if(op == 0){ if(fin del número)tirar 1;nbracket}
if( op = = 5){ if(nbract<=0 )lanza 2;nbracket}
if(op>0&&op<6&&!numberend)lanza 1
if(op & gt; 0 & amp& ampop & lt5)número final = 0; /p>
if(op == 1 | | op = = 2 | | op = = 5 ) while(ns & gt; 0 & amp& amp pila[ns-1]>0)cal(pila[-ns ]);
if(op == 3 | | op == 4) while (ns & gt; 0 && stack[ns-1]>2)cal(stack[-ns]);
if(op<5)stack[ns++]=op;
if(op = = 5)ns-;
}
if(nbract) vota 2;
if (! fin de número) arroja 1;
while(ns)cal(stack[-ns]);
Devuelve S2[0];
}
void main(){
Printf("Para números negativos, utilice: (0-número positivo), Ingrese: a+Enter\n "Salir);
mientras (1){
N2 = 0;
scanf("%s ", s 1);
if(s1[0]==' a '
) return;
Pruebe { printf("%g\n ", callall());}
catch(int x){
Cambiar ( x ){
Caso 0: printf("no se puede dividir por 0\n "); roto;
Caso 1: printf("posición incorrecta del operador\n") ;Romper;
Caso 2: printf("Los corchetes izquierdo y derecho no coinciden\n");Break;
Caso 3: printf("Carácter no válido\n");Break;
}
}
}
}