Advertisement
Guest User

Untitled

a guest
Sep 25th, 2017
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.77 KB | None | 0 0
  1. #include "stdio.h"
  2. #include "stdlib.h"
  3. #include "conio.h"
  4. #include "string.h"
  5.  
  6. struct expressao{
  7.      int operandos[100];
  8.      char operadores[100];
  9.      int ultimo_char;
  10.      int ultimo_int;
  11.      int total;
  12. };
  13.  
  14. struct expr{
  15.      struct expressao vetor_expressoes[100];
  16.      int ultimo;
  17. };
  18.  
  19. void inicializacao(struct expr *E, int indice){
  20.      E -> vetor_expressoes[indice].total = 0;
  21.      E -> vetor_expressoes[indice].ultimo_char = -1;
  22.      E -> vetor_expressoes[indice].ultimo_int = -1;
  23. }
  24.  
  25. main(){
  26.      struct expr E;
  27.      int k=0, j=0, i=0, aux1=0, aux2=0, sinal=0, quant, indicador_char=0;
  28.      char temp = ' ';
  29.      E.ultimo = -1;
  30.      scanf("%d",&quant);
  31.      while(quant != 0){ // Leitura
  32.           E.ultimo++;
  33.           inicializacao(&E, E.ultimo);
  34.           for(i=0; i<quant; i++){
  35.                E.vetor_expressoes[E.ultimo].ultimo_int++;
  36.                scanf("%d",&E.vetor_expressoes[E.ultimo].operandos[i]);
  37.  
  38.                fflush(stdin);
  39.                if(i == quant-1)
  40.                     break;
  41.                E.vetor_expressoes[E.ultimo].ultimo_char++;
  42.                scanf("%c",&E.vetor_expressoes[E.ultimo].operadores[E.vetor_expressoes[E.ultimo].ultimo_char]);
  43.           }
  44.           aux1=0; aux2=0; temp = ' ';
  45.  
  46.           for(i=0; i<=E.vetor_expressoes[E.ultimo].ultimo_int; ){
  47.                if(temp == ' '){
  48.                     aux1 = E.vetor_expressoes[E.ultimo].operandos[0];
  49.                     aux2 = E.vetor_expressoes[E.ultimo].operandos[1];
  50.                     temp = E.vetor_expressoes[E.ultimo].operadores[0];
  51.                     for(k=0; k<=E.vetor_expressoes[E.ultimo].ultimo_char; k++)
  52.                          E.vetor_expressoes[E.ultimo].operadores[k] = E.vetor_expressoes[E.ultimo].operadores[k+1];
  53.                          E.vetor_expressoes[E.ultimo].ultimo_char--;
  54.                     for(k=0; k<=E.vetor_expressoes[E.ultimo].ultimo_int; k++)
  55.                          E.vetor_expressoes[E.ultimo].operandos[k] = E.vetor_expressoes[E.ultimo].operandos[k+1];
  56.                          E.vetor_expressoes[E.ultimo].ultimo_int--;
  57.                     for(k=0; k<=E.vetor_expressoes[E.ultimo].ultimo_int; k++)
  58.                          E.vetor_expressoes[E.ultimo].operandos[k] = E.vetor_expressoes[E.ultimo].operandos[k+1];
  59.                          E.vetor_expressoes[E.ultimo].ultimo_int--;
  60.                     if(temp == '+'){
  61.                          E.vetor_expressoes[E.ultimo].total = aux1 + aux2;
  62.                     }
  63.                     else
  64.                          E.vetor_expressoes[E.ultimo].total = aux1 - aux2;
  65.                     aux1 = E.vetor_expressoes[E.ultimo].total;
  66.  
  67.                }
  68.                else{
  69.                     aux2 = E.vetor_expressoes[E.ultimo].operandos[0];
  70.                     temp = E.vetor_expressoes[E.ultimo].operadores[0];
  71.                     for(k=0; k<=E.vetor_expressoes[E.ultimo].ultimo_char; k++)
  72.                          E.vetor_expressoes[E.ultimo].operadores[k] = E.vetor_expressoes[E.ultimo].operadores[k+1];
  73.                          E.vetor_expressoes[E.ultimo].ultimo_char--;
  74.                     for(k=0; k<=E.vetor_expressoes[E.ultimo].ultimo_int; k++)
  75.                          E.vetor_expressoes[E.ultimo].operandos[k] = E.vetor_expressoes[E.ultimo].operandos[k+1];
  76.                          E.vetor_expressoes[E.ultimo].ultimo_int--;
  77.                     if(temp == '+')
  78.                          E.vetor_expressoes[E.ultimo].total = aux1 + aux2;
  79.  
  80.                     else
  81.                          E.vetor_expressoes[E.ultimo].total = aux1 - aux2;
  82.                     aux1 = E.vetor_expressoes[E.ultimo].total;
  83.                }
  84.           }
  85.           scanf("%d",&quant);
  86.      }
  87.      for(j=0; j<=E.ultimo; j++)
  88.           printf("Teste %d\n%d\n\n",j+1, E.vetor_expressoes[j].total);
  89. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement