• Jueves 28 de Marzo de 2024, 18:50

Autor Tema:  Porcentaje de numeros  (Leído 2087 veces)

saudiaz

  • Miembro activo
  • **
  • Mensajes: 51
  • Nacionalidad: sv
    • Ver Perfil
Porcentaje de numeros
« en: Martes 27 de Abril de 2010, 23:57 »
0
Hola!!! espero puedan ayudarme...

   El ususario introduce cuantas cantidades desea introducir con, aki no tengo problema... Ahora bien digamos que el usuario introdusco estos numeros
      10, 10, 10, 5, 5, 20, 20, 5, 5, 6
    Necesito sacar el porcentaje de cara numero osea.
20 = 20%    
10 = 30%
5  =  40%
6  = 10%
como pudeo hacer esto.... estoy usando plantillas y tengo el codigo pero no lo publico porque hay compañeros que igual andan buscando y no vaya a ser la casualidad que lo vean....

Expliquenme la logica por favor

Jeysscarr

  • Miembro MUY activo
  • ***
  • Mensajes: 134
  • Nacionalidad: co
    • Ver Perfil
Re: Porcentaje de numeros
« Respuesta #1 en: Miércoles 28 de Abril de 2010, 05:39 »
0
pues la logica parece sencilla

El porcentaje al lado de cada número que muestras parece ser el número de veces que aparece en la lista multiplicado 100 y dividido por 100 [que es la cantidad de numeros]
Es decir:

el 20 aparece 2 veces -> y (2 * 100)/10 = 20, ahi te muestra 20%
el 10 aparece 3 veces -> y (3 * 100)/10 = 30, ahi te muestra 30%
« última modificación: Jueves 29 de Abril de 2010, 04:16 por Jeysscarr »
Nuestro poder está creciendo mas rápido que nuestra sabiduria

Epa

  • Miembro MUY activo
  • ***
  • Mensajes: 242
  • Nacionalidad: ar
    • Ver Perfil
Re: Porcentaje de numeros
« Respuesta #2 en: Miércoles 28 de Abril de 2010, 15:44 »
0
Buenas

La idea para sacar el porcentaje es la relacion entre la cantidad de veces que aparece un numero, y la cantidad total de numeros, multiplicado por 100 para pasarlo a %.

En tu ejemplo:
la cantidad total de numeros es 10, la cantidad de 10'es es 3,
(3/10)* 100 = 30%

Lo ideal sera contar al cantidad total cuando se ingresan, y despues ordenarlos, para hacer el calculo.

Saludos
The sweet smell of a great sorrow lies over the land.


saudiaz

  • Miembro activo
  • **
  • Mensajes: 51
  • Nacionalidad: sv
    • Ver Perfil
Re: Porcentaje de numeros
« Respuesta #3 en: Miércoles 28 de Abril de 2010, 23:56 »
0
jajajajaja brother no creas que me rio de ti si no de mi desesperacion, eso ya lo se lo que pasa es lo siguente.

 Areglo 1   Areglo 2
  10            10
  5              5
  10            10
  5              5
  5              5

Se que tu sabes que tengo que hacer la comparacion para ver el numero de veces que se repite pero el problema es que saco 5 porcentajes. Puedes ser mas especifico. Osea si me puedes poner codigo....
´para poder hacer eso.

Jeysscarr

  • Miembro MUY activo
  • ***
  • Mensajes: 134
  • Nacionalidad: co
    • Ver Perfil
Re: Porcentaje de numeros
« Respuesta #4 en: Jueves 29 de Abril de 2010, 01:58 »
0
Código: C#
  1. #include<stdio.h>
  2. #include<iostream.h>
  3. #include<conio.h>
  4.  
  5. void main()
  6. {
  7.     int t=0;
  8.     cout<<" Digite la cantidad de numeros a escribir: ";
  9.     cin>>t;
  10.  
  11.     //crear una matriz con dos indices, el primero que tenga la capacidad
  12.     //de albergar a todos los numeros que el usuario digite en el caso que
  13.     //todos fueran distintos.. el segundo para contar sus posiciones
  14.     int * numeros=new int[t];
  15.     int * repeticiones=new int[t];
  16.  
  17.     for(int j=1;j<=t;j++)
  18.     {
  19.         numeros[j]=0;repeticiones[j]=0;
  20.     }
  21.  
  22.  
  23.     for(int i=1;i<=t;i++)
  24.     {
  25.         int dato=0;
  26.         //Digite un numero
  27.         cout<<" Digite el valor nº "<<i<<": ";
  28.         cin>>dato;
  29.  
  30.         //recorrer el array para ver si el valor ya existe..
  31.         int encontrado=0;
  32.         for(int k=1;k<=t;k++)
  33.         {
  34.             if(dato==numeros[k])
  35.             {
  36.                 //sumar las repeticiones
  37.                 encontrado=1;
  38.                 repeticiones[k]+=1;
  39.                 k=t;
  40.             }
  41.  
  42.         }
  43.         if(encontrado==0)
  44.         {
  45.             //sino lo encontro, crea el elemento
  46.             //buscar la posicion en el array vacia mas cercana
  47.             for(int h=1;h<=t;h++)
  48.             {
  49.                 if(numeros[h]==0)
  50.                 {
  51.                     numeros[h]=dato;
  52.                     repeticiones[h]=1;
  53.                     h=t;
  54.                 }
  55.             }
  56.         }
  57.     }
  58.     //recorrer el array hasta que encontremos 0 y vamos mostrando los valores
  59.     for(int u=1;u<=t;u++)
  60.     {
  61.         if(numeros[u]==0)
  62.         {
  63.             u=t;
  64.         }
  65.         else
  66.         {
  67.                         //Sacamos el porcentaje
  68.  
  69.  
  70.             float porcentaje=(repeticiones[u]*100)/t;
  71.             cout<<numeros[u]<<"=> "<<repeticiones[u]<<"veces.. "<<porcentaje<<" %, ";
  72.         }
  73.     }
  74. }
  75.  
El mensaje contiene 1 archivo adjunto. Debes ingresar o registrarte para poder verlo y descargarlo.
Nuestro poder está creciendo mas rápido que nuestra sabiduria