Ir para conteúdo

Scania_13

Membros
  • Postagens

    3
  • Registro em

  • Última visita

Posts postados por Scania_13

  1. Quando imprimo a lista de produtos são impressos apenas o último item cadastrado e um lixo de memória.

    #include <string.h>
    #include <stdlib.h>
    
    struct Produtos{
     char nome[60];
     float precoCompra;
     float precoVenda;
     float lucro;
    };
    
    float Lucro(float venda, float compra){
      float lucro;
    
      lucro = venda - compra;
      lucro = (lucro / venda) * 100;
    
      return lucro;
    }
    
    int main(){
      struct Produtos produto[4];
      int flag, aux = 0;
      int contlucro20 = 0, contlucro2030 = 0, contlucro30 = 0;
      int i;
    
      while (flag != 0){
        //Cadastrando produtos:
        aux++;
        for(i = 0; i < aux; i++){
          fflush(stdin);
          printf("\nProduto: "); fgets(produto[i].nome, 60, stdin);
          printf("\nPreco de Compra: "); scanf("%f", &produto[i].precoCompra);
          printf("\nPreco de Venda: "); scanf("%f", &produto[i].precoVenda);
    
          produto[i].lucro = Lucro(produto[i].precoVenda, produto[i].precoCompra);
          printf("\nLucro: %.2f%%", produto[i].lucro);
    
          if (produto[i].lucro < 20){contlucro20++;}
          else if (20 >= produto[i].lucro && produto[i].lucro <= 30){contlucro2030++;}
          else if(produto[i].lucro > 30){contlucro30++;}
    
    
          printf("\nDigite 0 para encerrar ou 1 para continuar: "); scanf("%d", &flag);
    
          if(flag == 0){break;}
        }
    
      }
    
      //Imprimindo lista de produtos:
      printf("\nLista de produtos: \n");
    
      for(i = 0; i < aux; i++){
        printf("\nProduto: %s", produto[i].nome);
        printf("\nPreco de Compra: %.2f", produto[i].precoCompra);
        printf("\nPreco de Venda: %.2f", produto[i].precoVenda);
        printf("\nLucro: %.2f%%\n", produto[i].lucro);
      }
    
      printf("\nNumero de produtos com lucro menor que 20%%: %d", contlucro20);
      printf("\nNumero de produtos com lucro entre  20%% e 30%%: %d", contlucro2030);
      printf("\nNumero de produtos com lucro maior que 30%%: %d", contlucro30);
    
      return 0;
    }

    68415686_Capturadetela2022-10-01130831.thumb.png.e544dda591d40909580ef623bb04e495.png

    • Curtir 1
  2. Estou tentando descobrir os problemas de alguns códigos em assemble, porém não estou conseguindo resolver alguns que são: mov ax, [si][di];mov ds, cs; e mov ax, [si+di+0].

    Os erros que aparecem são:

    illegal index mode (mov ax, [si][di]) illegal use of segment register (mov ds, cs | mov ax, [si+di+0])

×
×
  • Criar Novo...