gonzalob

Untitled

May 26th, 2020
914
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.66 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include "pila.h"
  4.  
  5. void mostrarArregloFloat(float a_promedios[100],int validos);
  6. float calcularProm(int arreglo[100],int validos);
  7. int guardarProm(float prom, float a_promedios[100], int pos);
  8.  
  9. int main()
  10. {
  11.  
  12.     //globales para todos los pj
  13.     Pila intentos;
  14.     float arreglo_p[100];
  15.     int posArregloProm = 0;
  16.     int cantidadJugadores = 3; //turnos
  17.     int jugadorActual = 0; //turno
  18.     inicpila(&intentos);
  19.     //de cada pj
  20.     int dim = 100;
  21.     int arreglo[100];
  22.  
  23.     while (jugadorActual<cantidadJugadores)
  24.     {
  25.         printf("TURNO JUGADOR %d\n",jugadorActual+1);
  26.         printf("\n");
  27.         inicArreglo(arreglo,dim);
  28.         mostrarArreglo(arreglo,dim);
  29.         int cantidadDeIntentos = cargarArreglo(arreglo,100,arreglo_p,jugadorActual);
  30.         mostrarArreglo(arreglo,cantidadDeIntentos);
  31.         cargarPila(&intentos,cantidadDeIntentos);
  32.         printf("te llevo %d intentos\n",cantidadDeIntentos);
  33.         jugadorActual++;//sumo un turno
  34.         system("pause");
  35.         system("cls");
  36.     }
  37.     printf("ESTADISTICAS FINALES \n");
  38.     mostrarPilaManual(intentos);
  39.     int mayor = mayorCantidadDeIntentos(intentos);
  40.     int menor = menorCantidadDeIntentos(intentos);
  41.     printf("la mayor cantidad de intentos es %d\n",mayor);
  42.     printf("la menor cantidad de intentos es %d\n",menor);
  43.     printf("PROMEDIOS FINALES \n");
  44.     mostrarArregloFloat(arreglo_p,cantidadJugadores);
  45.     return 0;
  46. }
  47.  
  48.  
  49.  
  50. int cargarArreglo(int arreglo[100],int dim, float arreglo_p[100],int posArregloProm)
  51. {
  52.     int validos = 0;
  53.  
  54.     int danio = 0;
  55.     int controlDanio = 0;
  56.     int sumaTotal = validarDanioTotal(arreglo,validos);//aca da -1
  57.     //cargar hasta que la vida == 100
  58.     while (sumaTotal==-1)
  59.     {
  60.  
  61.  
  62.         //cargar el arreglo
  63.         do
  64.         {
  65.             danio = ingresoDanio(validos);
  66.             controlDanio = validarDanio(danio);
  67.         }
  68.         while (controlDanio==-1);
  69.  
  70.         arreglo[validos] = danio;
  71.  
  72.         validos++;
  73.  
  74.         sumaTotal = validarDanioTotal(arreglo,validos);//aca puede dar otra cosa
  75.  
  76.     }
  77.  
  78.     float prom = calcularProm(arreglo,validos);
  79.  
  80.     posArregloProm = guardarProm(prom,arreglo_p,posArregloProm);
  81.  
  82.     return validos;
  83. }
  84.  
  85.  
  86. void inicArreglo(int arreglo[100],int dim)
  87. {
  88.     int indice = 0;
  89.     for (indice = 0; indice<dim; indice++)
  90.     {
  91.         arreglo[indice] = -1;
  92.     }
  93. }
  94.  
  95. int validarDanio(int danio)
  96. {
  97.     int flag = -1;
  98.  
  99.     if ((danio>=1)&&(danio<=15))
  100.     {
  101.         flag = 1;
  102.     }
  103.  
  104.     return flag;
  105. }
  106.  
  107. int ingresoDanio(int intento)
  108. {
  109.     int danio = 0;
  110.     printf("ingrese daƱo %d\n",intento+1);
  111.     scanf("%d",&danio);
  112.     return danio;
  113. }
  114.  
  115. int validarDanioTotal(int arreglo[100],int validos)
  116. {
  117.     int flag = -1;
  118.     int suma = 0;
  119.     int indice = 0;
  120.  
  121.     for (indice=0; indice<validos; indice++)
  122.     {
  123.         suma = suma + arreglo[indice];
  124.     }
  125.  
  126.     if (suma >= 100)
  127.         flag = 1;
  128.  
  129.     return flag ;
  130. }
  131.  
  132. void mostrarArreglo(int arreglo[100],int validos)
  133. {
  134.     int indice = 0;
  135.  
  136.     for (indice=0; indice<validos; indice++)
  137.     {
  138.         printf("[%d]",arreglo[indice]);
  139.     }
  140.     printf("\n");
  141. }
  142.  
  143. void cargarPila(Pila * p,int cantidadDeIntentos)
  144. {
  145.     apilar(p,cantidadDeIntentos);
  146. }
  147.  
  148. void mostrarPilaManual(Pila p)
  149. {
  150.     printf("Base -> ");
  151.     while (!pilavacia(&p))
  152.     {
  153.         printf(" %d ",desapilar(&p));
  154.     }
  155.     printf("<- Tope ");
  156.     printf("\n");
  157. }
  158.  
  159. int mayorCantidadDeIntentos(Pila p)
  160. {
  161.     int mayor = 0;
  162.     int aux = 0;
  163.     if (!pilavacia(&p))
  164.         mayor = desapilar(&p);
  165.  
  166.     while (!pilavacia(&p))
  167.     {
  168.         aux = desapilar(&p);
  169.         if (aux > mayor)
  170.         {
  171.             mayor = aux;
  172.         }
  173.     }
  174.  
  175.     return mayor;
  176. }
  177.  
  178. int menorCantidadDeIntentos(Pila p)
  179. {
  180.     int menor = 0;
  181.     int aux = 0;
  182.     if (!pilavacia(&p))
  183.         menor = desapilar(&p);
  184.  
  185.     while (!pilavacia(&p))
  186.     {
  187.         aux = desapilar(&p);
  188.         if (aux < menor)
  189.         {
  190.             menor = aux;
  191.         }
  192.     }
  193.  
  194.     return menor;
  195. }
  196.  
  197.  
  198. float calcularProm(int arreglo[100],int validos)
  199. {
  200.     float prom = 0;
  201.  
  202.     int indice = 0;
  203.  
  204.     int suma = 0;
  205.  
  206.     for (indice = 0; indice<validos; indice++)
  207.     {
  208.         suma = suma + arreglo[indice];
  209.     }
  210.  
  211.     prom = (float)suma/(float)validos;
  212.  
  213.     return prom;
  214. }
  215.  
  216. int guardarProm(float prom, float a_promedios[100], int pos)
  217. {
  218.     a_promedios[pos] = prom;
  219.     return pos++;
  220. }
  221.  
  222. void mostrarArregloFloat(float a_promedios[100],int validos)
  223. {
  224.     int indice = 0;
  225.  
  226.     for (indice=0; indice<validos; indice++)
  227.     {
  228.         printf("[%f]",a_promedios[indice]);
  229.     }
  230.     printf("\n");
  231. }
Advertisement
Add Comment
Please, Sign In to add comment