that_one_nigga_you_k

epilef com sprintf

Dec 8th, 2023
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.61 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4.  
  5. typedef struct {
  6.     float preco;
  7.     int posicao[2];
  8.     int linha;
  9.     int coluna;
  10.     char nome[50];
  11.     int quantidade;
  12. } produto;
  13.  
  14. int main() {
  15.  
  16.     int quantidade_produtos;
  17.  
  18.     scanf("%d", &quantidade_produtos);
  19.  
  20.     produto estoque[quantidade_produtos];
  21.  
  22.     int flag = 0;
  23.     int contador = 0;
  24.     char outputs[1000][100];  //s? vcs e Deus sabem quantos comandos v?o ser dados
  25.  
  26.     int outputIndex = 0;
  27.  
  28.     while (flag != 1) {
  29.  
  30.         char acao[40];
  31.         int lugar[2];
  32.         char nome[50];
  33.         int quantidade;
  34.         float preco;
  35.  
  36.         scanf("%s", acao);
  37.  
  38.         if (strcmp(acao, "EXIT") == 0) {
  39.             sprintf(outputs[outputIndex], "Saindo...\n");
  40.             flag = 1;
  41.         }
  42.  
  43.         else if (strcmp(acao, "CREATE") == 0) {
  44.             // linha coluna nome quantidade pre?o
  45.             scanf(" %d %d %s %d %f", &lugar[0], &lugar[1],
  46.                 nome, &quantidade, &preco);
  47.  
  48.             int isSamePlace = 0;
  49.             int flagg = 0;
  50.             for (int i = 0; i < contador && flag != 1; i++) {
  51.                 if (estoque[i].posicao[0] == lugar[0] &&
  52.                     estoque[i].posicao[1] == lugar[1]) {
  53.                     isSamePlace = 1;
  54.                     sprintf(outputs[outputIndex], "ERRO: espa?o ja ocupado\n");
  55.                     flagg = 1;
  56.                 }
  57.             }
  58.  
  59.             if (!isSamePlace) {
  60.                 estoque[contador].posicao[0] = lugar[0];
  61.                 estoque[contador].posicao[1] = lugar[1];
  62.                 estoque[contador].preco = preco;
  63.                 estoque[contador].quantidade = quantidade;
  64.                 strcpy(estoque[contador].nome, nome);
  65.  
  66.                 sprintf(outputs[outputIndex], "Produto adicionado no estoque!\n");
  67.                 contador++;
  68.             }
  69.         }
  70.  
  71.         else if (strcmp(acao, "READ") == 0) {
  72.             // nome
  73.             scanf("%s", nome);
  74.  
  75.             int flagg = 0;
  76.  
  77.             for (int i = 0; i < contador && flagg != 1; i++) {
  78.                 if (strcmp(estoque[i].nome, nome) == 0) {
  79.                     //"LINHA:  COLUNA:  QTD:  PRECO:  "
  80.                     sprintf(outputs[outputIndex], "LINHA: %d COLUNA: %d QTD: %d PRECO: %.2f\n",
  81.                         estoque[i].posicao[0], estoque[i].posicao[1],
  82.                         estoque[i].quantidade, estoque[i].preco);
  83.                     flagg = 1;
  84.                 }
  85.             }
  86.  
  87.             if (flagg == 0) {
  88.                 sprintf(outputs[outputIndex], "ERRO: Produto nao encontrado.\n");
  89.             }
  90.  
  91.         }
  92.  
  93.         else if (strcmp(acao, "UPDATE") == 0) {
  94.             // nome quantidade pre?o
  95.             scanf("%s %d %f", nome, &quantidade, &preco);
  96.  
  97.             int flagg = 0;
  98.             for (int i = 0; i < contador && flagg != 1; i++) {
  99.                 if (strcmp(estoque[i].nome, nome) == 0) {
  100.                     // quantidade, preco
  101.                     estoque[i].quantidade = quantidade;
  102.                     estoque[i].preco = preco;
  103.                     sprintf(outputs[outputIndex], "Produto atualizado!\n");
  104.                     flagg = 1;
  105.                 }
  106.             }
  107.  
  108.             if (flagg == 0) sprintf(outputs[outputIndex], "Produto nao encontrado!\n");
  109.         }
  110.  
  111.         else if (strcmp(acao, "DELETE") == 0) {
  112.             scanf("%s", nome);
  113.  
  114.             int flagg = 0;
  115.  
  116.             for (int i = 0; i < contador && flagg != 1; i++) {
  117.                 if (strcmp(estoque[i].nome, nome) == 0) {
  118.                     for (int j = i; j < contador - 1; j++) {
  119.                         estoque[j] = estoque[j + 1];
  120.                     }
  121.                     contador--;
  122.                     sprintf(outputs[outputIndex], "Produto removido!\n");
  123.                     flagg = 1;
  124.                 }
  125.             }
  126.  
  127.             if (flagg == 0) {
  128.                 sprintf(outputs[outputIndex], "Produto nao encontrado!\n");
  129.             }
  130.         }
  131.  
  132.         else if (strcmp(acao, "PRINT") == 0) {
  133.  
  134.             for (int i = 0; i < contador; i++) {
  135.                 //"LINHA:  COLUNA: NOME: QTD:  PRECO:  "
  136.                 sprintf(outputs[outputIndex], "LINHA: %d COLUNA: %d NOME: %s QTD: %d PRECO: %.2f\n",
  137.                     estoque[i].posicao[0], estoque[i].posicao[1],
  138.                     estoque[i].nome, estoque[i].quantidade, estoque[i].preco);
  139.                     outputIndex++;
  140.                    
  141.             }
  142.            
  143.         }
  144.  
  145.        outputIndex++;
  146.     }
  147.  
  148.     // Print all messages in order
  149.     for (int i = 0; i < outputIndex; i++) {
  150.         printf("%s", outputs[i]);
  151.     }
  152.  
  153.     return 0;
  154. }
Add Comment
Please, Sign In to add comment