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; }