• Blog
  • Acerca
  • Autor
  • Contacto
  • Histograma con números aleatorios y asteriscos

    Bueno, tal vez el título quedó muy poco descriptivo, pero la idea es pedir un número de personas, luego se le pediría a cada persona su peso pero nosotros solo vamos a generar un número aleatorio en determinado rango. Luego se clasificaría a esas personas en rangos de peso y al final mostrar una tabla que muestre la frecuencia de cada rango con asteriscos, así:

    51-60 ***
    61-70 **
    71-80 ***
    80-91 *
    91-mas *****

    El código en C++ sería así:

    #include<stdlib.h>
    #include<iostream>
    using namespace std;
     
    int main()
    {
        int n,c,c2,peso[500],cat[5]={0},lim;
        // n -> numero de personas
        // c y c2 para ciclos
        // peso[500] arreglo para guardar el peso de las personas
        // cat[5] arreglo para guardar el número de personas en cada categoria de peso
        srand(time(NULL)); // Inicializa los números aleatorios
        cout<<"Introduce el número de personas: ";cin>>n;
        for(c=0;c<=n-1;c++)
        {
            peso[c]=51+rand()%(120-51); //guarda un número aleatorio del 51 al 120 en cada elemento del arreglo
            // según su valor se aumenta un elemento de nuestro otro arreglo
            if(peso[c]>50 && peso[c]<=60)
                cat[0]++;
            if(peso[c]>60 && peso[c]<=70)
                cat[1]++;
            if(peso[c]>70 && peso[c]<=80)
                cat[2]++;
            if(peso[c]>80 && peso[c]<=90)
                cat[3]++;
            if(peso[c]>90)
                cat[4]++;
        }
        cout<<"\n";
        for(c=0;c<=4;c++)
        {
            switch(c)
            {
                // segun cada caso imprime algo diferente
                case 0:
                    cout<<"51-60\t";
                break;
                case 1:
                    cout<<"61-70\t";
                break;
                case 2:
                    cout<<"71-80\t";
                break;
                case 3:
                    cout<<"81-90\t";
                break;
                case 4:
                    cout<<"90-  \t";
                break;
            }
            lim=cat[c]; // no podemos usar un arreglo como limite del ciclo (la verdad
                       // no se porque), entonces lo pasamos a una variable normal
            for(c2=1;c2<=lim;c2++)
                    cout<<"*";
            cout<<"\n\n";
        }
        cin.get();cin.get(); // detiene la ejecución al final (es como getch();)
    }

    A propósito, este programa fue una petición especial de un usuario.

    1. Trancemusik dice:

      Hola estoy con un problema en quiero que me muestre la estacion del año introducioendo dia y mes mira ya realize mi codigo

      #include
      #include

      int main()
      {
      int dia,mes;

      printf(“Elija el mes\n\n”);

      printf(“1 Enero\n\n”);
      printf(“2 Febrero\n\n”);
      printf(“3 Marzo\n\n”);
      printf(“4 Abril\n\n”);
      printf(“5 Mayo\n\n”);
      printf(“6 Junio\n\n”);
      printf(“7 Julio\n\n”);
      printf(“8 Agosto\n\n”);
      printf(“9 Septiembre\n\n”);
      printf(“10 Octubre\n\n”);
      printf(“11 Noviembre\n\n”);
      printf(“12 Diciembre\n\n”);
      scanf(“%d”,&mes);
      switch(mes){

      case 1:
      printf(“Es invierno\n\n”);
      break;
      case 2:printf(“Es invierno\n\n”);
      break;
      case 3:
      printf(“Capture el dia\n\n”); // muestra capturar calificacion

      scanf(“%d”,&dia);

      (dia>20);

      printf(“Es primavera\n\n”);

      else

      printf(“Es invierno\n\n”);
      break;

      default: printf(“No existe mes.\n”);
      }

      system(“pause”);
      }

      mira de echo llevo hasta marzo mi intencion es que cuando sea mayor del dia 22 empieza primavera y cuando sea menor sigue siendo invierno, estuve investigando y no encontre si es posible usar un case con if y else y pues me marca error la verdad no encuentro otra forma de hacerlo me podrias decir donde esta mi error.

      Saludos!!

    2. Trancemusik dice:

      perdon por mis errores esque lo estava transcribiendo en un programa que ya habia realizado con anterioridad para no repetir todo saludos

    Hola, escribe aquí tu comentario: