Foros del Web » Programación para mayores de 30 ;) » C/C++ »

[SOLUCIONADO] Tanto por cien aleatorio

Estas en el tema de Tanto por cien aleatorio en el foro de C/C++ en Foros del Web. Hola amigos, les cuento mi problema: Se trata de un programa que hace 100 numeros aleatoriamente (entre el 0 y el 5) Luego dice el ...
  #1 (permalink)  
Antiguo 10/07/2013, 13:31
 
Fecha de Ingreso: julio-2013
Ubicación: Vic
Mensajes: 26
Antigüedad: 10 años, 9 meses
Puntos: 0
Exclamación Tanto por cien aleatorio

Hola amigos, les cuento mi problema:

Se trata de un programa que hace 100 numeros aleatoriamente (entre el 0 y el 5)
Luego dice el tanto porciento de los numeros que han salido

No se que hago mal pero el resultado me da 0 siempre

Aquí el código:
Código PHP:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

//Declaración de funciones

int fn0 (int f0);
int fn1 (int f1);
int fn2 (int f2);
int fn3 (int f3);
int fn4 (int f4);
int fn5 (int f5);


int main()
{
    
int ix;
    
int f0 0f1 0f2 0f3 0f4 0f5 0// Los hago servir para contar cada vez 
                                                        // que sale un numero especifico
    
srand(time(NULL));

    for(
0100i++)    {
        
rand() % 6;
        switch (
x){
            case 
0:
                
f0 f0 1;
                break;
            case 
1:
                
f1 f1 1;
                break;
            case 
2:
                
f2 f2 1;
                break;
            case 
3:
                
f3 f3 1;
                break;
            case 
4:
                
f4 f4 1;
                break;
            default:
                
f5 f5 1;
                break;
        }
    }

    
int ff0 fn0(f0);            //Llamo a las funciones
    
int ff1 fn1(f1);
    
int ff2 fn2(f2);
    
int ff3 fn3(f3);
    
int ff4 fn4(f4);
    
int ff5 fn5(f5);

    
printf("Ha salido el numero 0 un %d porciento\n",ff0);        //Las imprimo
    
printf("Ha salido el numero 1 un %d porciento\n",ff1);
    
printf("Ha salido el numero 2 un %d porciento\n",ff2);
    
printf("Ha salido el numero 3 un %d porciento\n",ff3);
    
printf("Ha salido el numero 4 un %d porciento\n",ff4);
    
printf("Ha salido el numero 5 un %d porciento\n",ff5);    
}

//Funciones

int fn0 (int f0)
{
    
int perc0 = (f0 100) * 100;
    return 
perc0;
}

int fn1 (int f1)
{
    
int perc1 = (f1 100) * 100;
    return 
perc1;
}

int fn2 (int f2)
{
    
int perc2 = (f2 100);
    
perc2 perc2 100;
    return 
perc2;
}

int fn3 (int f3)
{
    
int perc3 = (f3 100) * 100;
    return 
perc3;
}

int fn4 (int f4)
{
    
int perc4 = (f4 100) * 100;
    return 
perc4;
}

int fn5 (int f5)
{
    
int perc5 = (f5 100) * 100;
    return 
perc5;

Un saludo.

Última edición por kete12345; 10/07/2013 a las 13:40
  #2 (permalink)  
Antiguo 10/07/2013, 13:45
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Tanto por cien aleatorio

Son muchas cosas.

1. Haces divisiones con enteros, recuerda int / int == int
2. Haces como cosas como (X / 100) * 100, esto siempre es igual a X. El porcentaje se calcula como (cuantas_veces_cae_un_numero / total_de_intentos) * 100
3. Haces cosas como crear 6 funciones que hacen lo mismo.

Código C:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5. int main()
  6. {
  7.     int i, x;
  8.     int f[6] = {0, 0, 0, 0, 0, 0};
  9.     srand(time(NULL));
  10.  
  11.     for(i = 0; i < 100; i++)    {
  12.         x = rand() % 6;
  13.         f[x]++;
  14.     }
  15.  
  16.     for(i = 0; i < 6; i++) {
  17.         printf("Ha salido el numero %d un %d porciento\n", i, f[i]);        //Las imprimo
  18.     }
  19. }
  #3 (permalink)  
Antiguo 10/07/2013, 13:52
 
Fecha de Ingreso: julio-2013
Ubicación: Vic
Mensajes: 26
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: Tanto por cien aleatorio

Aun no hago servir tablas.
Como puedo hacer esta división?

Un saludo
  #4 (permalink)  
Antiguo 10/07/2013, 14:05
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: Tanto por cien aleatorio

Como te dije antes, estas haciendo una división entera y ademas no necesitas hacer la división (al menos en este caso), pero si tanto insistes.

int / int == int
int / float == float
float / int == float
float / float == float

Cita:
Iniciado por kete12345 Ver Mensaje
Como puedo hacer esta división?
O_o O___o O_____o

Código C:
Ver original
  1. (X / 100.0) * 100.0;
  #5 (permalink)  
Antiguo 10/07/2013, 14:12
 
Fecha de Ingreso: julio-2013
Ubicación: Vic
Mensajes: 26
Antigüedad: 10 años, 9 meses
Puntos: 0
Respuesta: Tanto por cien aleatorio

Muchas gracias, apenas llevo un mes programando en C.

De verdad muchas gracias.

Un saludo

Etiquetas: funcion, int, programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:10.