30/04/2012, 09:37
|
| | Fecha de Ingreso: abril-2012 Ubicación: Mexico
Mensajes: 7
Antigüedad: 12 años, 7 meses Puntos: 0 | |
Simulador de sistema de apuesta, no encuentro el error!! Hola, hice un programa en C que simula un sistema de apuesta pero me imprime mal la variable (apuesta), tampoco funciona como deberia pero creo q es por eso de que la variable no toma el valor q deberia creo q es un error en el tipo de dato pero no lo se me pueden ayudar este es el codigo.
Código:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 10
void encuentraMayor (long long int veces[N][N],long long int bank[N][N]);
long long int SistemaB (long long int (*bankroll),long double (*apuesta),long long int semilla,long long int vueltas, float prcnto_g, float prcnto_p);
int main()
{
long long int na[N][N], i, j, s, p;
long long int v[N][N];
long long int bank[N][N];
long double apuesta[N][N];
long long int manos=10000;
float a_g, a_p;
a_g=0.1;
a_p=0.1;
srand (time (NULL));
for (i=0;i<N;i++)
{
for (j=0;j<N;j++)
{
v[i][j]=0;
}
}
for (p=0;p<100;p++)
{
for (i=0;i<N;i++)
{
for (j=0;j<N;j++)
{
apuesta[i][j]=10;
}
}
for (i=0;i<N;i++)
{
for (j=0;j<N;j++)
{
bank[i][j]=100;
}
}
s=rand () %RAND_MAX;
for (i=0;i<N;i++)
{
for (j=0;j<N;j++)
{
na[i][j]=SistemaB (&(bank[i][j]),&(apuesta[i][j]),s,manos,a_g,a_p);
a_g=(i+1)/10;
a_p=(j+1)/10;
}
}
printf ("\n");
for (i=0;i<N;i++)
{
for (j=0;j<N;j++)
{
printf ("%lld ",bank[i][j]);
}
printf ("\n");
}
encuentraMayor (v,bank);
}
for (i=0;i<N;i++)
{
for (j=0;j<N;j++)
{
printf ("%lld,%lld = %lld\n",i,j,v[i][j]);
}
}
return (EXIT_SUCCESS);
}
void encuentraMayor (long long int veces[N][N],long long int bank[N][N])
{
long long int i, j, mayor=-2;
for (i=0;i<N;i++)
{
for (j=0;j<N;j++)
{
if (bank[i][j]>mayor)
{
mayor=bank[i][j];
}
}
}
for (i=0;i<N;i++)
{
for (j=0;j<N;j++)
{
if (mayor==-1)
{
break;
}
if (bank[i][j]==mayor)
{
veces[i][j]++;
}
}
}
return ;
}
long long int SistemaB (long long int (*bankroll),long double (*apuesta),long long int semilla,long long int vueltas, float prcnto_g, float prcnto_p)
{
long long int na=0, banknet=(*bankroll), bi=(*bankroll), b=1, qpaso;
srand (semilla);
(*apuesta)=10;
do
{
qpaso=rand () %2;
if ((*apuesta)>(*bankroll))
{
printf ("B Fondos insuficientes %LF\n",(*apuesta)); /*esto es lo que imprime mal, imprime algo asi como esto: -6374687364187346817264*/
(*bankroll)=-1;
break;
}
if ((*bankroll)<banknet)
{
bi=banknet;
b=0;
if (qpaso==1)
{
(*bankroll)+=(*apuesta);
}
else
{
(*bankroll)=(*bankroll)-(*apuesta);
}
}
else
{
if (qpaso==1)
{
if (b==0)
{
(*apuesta)=10;
b=1;
}
(*bankroll)+=(*apuesta);
banknet=(*bankroll);
(*apuesta)=(banknet-bi)*prcnto_g;
}
else
{
(*bankroll)=(*bankroll)-(*apuesta);
(*apuesta)=(*apuesta)*prcnto_p;
}
}
if (((*apuesta)-(int) (*apuesta))<.6)
{
(*apuesta)=(int)(*apuesta);
}
else
{
(*apuesta)=((int) (*apuesta))+1;
}
na++;
}while (na<vueltas);
return na;
}
|