Advertisement
Miquel_Fuster

Control de aforo

Sep 24th, 2023
528
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.63 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdbool.h>
  3.  
  4. bool comunicarDecision(int, int, int);
  5.  
  6. int main() {
  7.     int maxClientes;
  8.     int numGruposTotal;
  9.     int numGruposAtendidos = 0;
  10.     int numClientesEnInterior = 0;
  11.    
  12.     // recopilado de datos iniciales
  13.     printf("Numero maximo de clientes en el establecimiento: ");
  14.     scanf("%d", &maxClientes);
  15.    
  16.     printf("Numero de grupos de personas que van a entrar: ");
  17.     scanf("%d", &numGruposTotal);
  18.    
  19.     int paxGrupo[numGruposTotal];
  20.     for(int i=0; i<numGruposTotal; ++i) {
  21.         printf("Numero de personas que integran el grupo #%d: ", i+1);
  22.         scanf("%d", &paxGrupo[i]);
  23.     }
  24.    
  25.     // pasan grupos hasta llenar el local
  26.     while(numGruposAtendidos < numGruposTotal && comunicarDecision(maxClientes, paxGrupo[numGruposAtendidos], numClientesEnInterior)) {
  27.         numClientesEnInterior += paxGrupo[numGruposAtendidos++];
  28.     }
  29.  
  30.     // mientras haya grupos que necesiten pasar
  31.     while(numGruposAtendidos < numGruposTotal) {
  32.         int numClientesSaliendo;
  33.         printf("Numero de clientes que abandonan el local: ");
  34.         scanf("%d", &numClientesSaliendo);
  35.         numClientesEnInterior -= numClientesSaliendo;
  36.         if(comunicarDecision(maxClientes, paxGrupo[numGruposAtendidos], numClientesEnInterior)) {
  37.             numClientesEnInterior += paxGrupo[numGruposAtendidos++];
  38.         }
  39.     }
  40. }
  41.  
  42. bool comunicarDecision(int maxClientes, int numClientesGrupo, int numClientesEnInterior) {
  43.     if(numClientesGrupo + numClientesEnInterior > maxClientes) {
  44.         puts("espera");
  45.         return false;
  46.     }
  47.    
  48.     puts("pasa");
  49.     return true;
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement