La cosa es que mi programa funciona correctamente, hasta que saca un numero y el contador se vuelve loco. El código es un bingo, el cual crea dos cartones y va creando bolas y gana el primer cartón que descarte mas números, y lo que pasa, es que, todo funciona bien, hasta que sale el numero 88, cuando sale ese número, los contadores se vuelven locos y no he conseguido encontrar el error tonto que tendré, si alguien me puediese ayudar..!. Les dejo el código abajo, con la parte donde yo creo que esta el error separado por /*****, gracias.
Código [Seleccionar]
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <conio.h>
void ImprimoPrincipio();
int GeneradorNumero();
void ImprimirCarton1(int[]);
void ImprimirCarton2(int[]);
int main(void){
int y=0, z, a, sacadas[100], bolas=0, final=0, contador1=0, contador2=0;
int numerosCarton1 [100], numerosCarton2[100], numerosBolas[100];
int vectorCarton1[20], vectorCarton2[20];
srand(time(NULL));
ImprimoPrincipio();
for(int i=0;i<100;i++){ //Genero numeros de Carton1 (100)
numerosCarton1[y]=i+1;
y++;
}
y=0;
for(int j=0;j<100;j++){ //Genero numeros de Carton2 (100)
numerosCarton2[y]=j+1;
y++;
}
y=0;
for(int u=0;u<100;u++){ //Genero numeros de bolas (100)
numerosBolas[y]=u+1;
y++;
}
for(int i=0;i<20;i++){ //Creo vectorCarton1 (20)
do{
z=GeneradorNumero();
}while(numerosCarton1[z]==0);
vectorCarton1[i]=numerosCarton1[z];
numerosCarton1[z]=0;
}
for(int j=0;j<20;j++){ //Creo vectorCarton2 (20)
do{
z=GeneradorNumero();
}while(numerosCarton2[z]==0);
vectorCarton2[j]=numerosCarton2[z];
numerosCarton2[z]=0;
}
printf("\nCarton1:\n");
ImprimirCarton1(vectorCarton1);
printf("\nCarton2:\n");
ImprimirCarton2(vectorCarton2);
getchar();
do{
system("cls");
ImprimoPrincipio();
do{
z=GeneradorNumero();
}while(numerosBolas[z]==0);
a=numerosBolas[z];
numerosBolas[z]=0;
sacadas[bolas]=a;
printf("Bolas: ");
for(int i=0;i<=bolas;i++){
printf("%d ", sacadas[i]);
}
bolas++;
//**************************************************
for(int j=0;j<20;j++){
if(vectorCarton1[j]==a&&a!=88){
vectorCarton1[j]=0x58;
contador1++;
printf("\nContador1=%d\n",contador1);
}
if(vectorCarton1[j]==a&&a==88){
vectorCarton1[j]=0x58;
contador1++;
printf("\nContador1=%d\n",contador1);
}
}
for(int u=0;u<20;u++){
if(vectorCarton2[u]==a&&a!=88){
vectorCarton2[u]=0x58;
contador2++;
printf("\nContador2=%d\n",contador2);
}
if(vectorCarton2[u]==a&&a==88){
vectorCarton2[u]=0x58;
contador2++;
printf("\nContador2=%d\n",contador2);
}
}
//******************************************************
printf("\nCarton1:\n");
ImprimirCarton1(vectorCarton1);
printf("\nCarton2:\n");
ImprimirCarton2(vectorCarton2);
if(contador1==20){
printf("Gana el Jugador 1\n");
final=1;
}
if(contador2==20){
printf("Gana el Jugador 2\n");
final=1;
}
getchar();
}while(final==0);
return 0;
}
void ImprimoPrincipio(void){
printf("----------------------------\n");
printf("Juego del bingo simplificado\n");
printf("----------------------------\n");
}
int GeneradorNumero(void){
int num;
num=rand()%100;
return num;
}
void ImprimirCarton1(int vectorCarton1[]){
int v;
for(int j=0;j<20;j++){
if(vectorCarton1[j]==0x58){
printf("%c", vectorCarton1[j]);
printf(" ");
if(j==4||j==9||j==14||j==19){
printf("\n");
}
}else{
printf("%d",vectorCarton1[j]);
v=vectorCarton1[j]/10;
if(v<1){
printf(" ");
}else{
printf(" ");
}
if(j==4||j==9||j==14||j==19){
printf("\n");
}
}
}
}
void ImprimirCarton2(int vectorCarton2[]){
int v;
for(int j=0;j<20;j++){
if(vectorCarton2[j]==0x58){
printf("%c", vectorCarton2[j]);
printf(" ");
if(j==4||j==9||j==14||j==19){
printf("\n");
}
}else{
printf("%d",vectorCarton2[j]);
v=vectorCarton2[j]/10;
if(v<1){
printf(" ");
}else{
printf(" ");
}
if(j==4||j==9||j==14||j==19){
printf("\n");
}
}
}
}