jacknpoe

Grupos de no mínimo 3 séries

Nov 12th, 2025
987
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.48 KB | None | 0 0
  1. // separa as séries de exercícios em grupos entre 5 e 3 séries e quando tomar água
  2. // essa versão tenta fazer os grupos com o mínimo de séries possível (ao menos 3)
  3.  
  4. #include <stdio.h> // printf/scanf
  5. #include <stdlib.h>  // malloc/free
  6.  
  7. int main() {
  8.     int series, grupos, iterador, atual, *quant;
  9.  
  10.     // pede um valor do total de séries
  11.     printf("Total de séries: ");
  12.     scanf("%i", &series);
  13.  
  14.     // calcula quantos grupos de séries serão feitos (ao menos 1)
  15.     grupos = series / 3 > 0 ? series / 3 : 1;
  16.  
  17.     // aloca o número de grupos de inteiros para quant
  18.     quant = (int *) malloc(grupos * sizeof(int));
  19.  
  20.     // determina quantas séries cada grupo vai ter, de trás para a frente
  21.     // a ideia é dividir a quantidade de séreies que falta pelo número de grupos que falta
  22.     for(iterador = grupos - 1; iterador >= 0; iterador--) {
  23.         atual = series / (iterador + 1);  // a quantidasde atual é a parte inteira da divisão
  24.         quant[iterador] = atual;
  25.         series -= atual;  // aqui, na última iteração, será exatamente a quantidade que faltava
  26.     }
  27.  
  28.     // imprime o número de grupos
  29.     printf("Grupos: %d.\n", grupos);
  30.  
  31.     // imprime cada grupo e quantas séries, e quando beber água
  32.     for(iterador = 0; iterador < grupos; iterador++) {
  33.         printf("Grupo %d: %d séries.\nBeba água!\n", iterador + 1, quant[iterador]);
  34.     }
  35.  
  36.     // libera a memória e sai do programa com o código 0 (sucesso)
  37.     free(quant);
  38.     return 0;
  39. }
Tags: academia
Advertisement
Add Comment
Please, Sign In to add comment