Hola!
Tengo un pequeño problema... tengo q hacer una funcion pero no consigo q me funcione correctamente.... no se me ocurre nada... espero que me podais ayudar...
Os copio el enunciado y el codigo que yo he hecho, a ver si me podeis ayudar a encontrar los errores y como corregirlos.
Gracias.
------------------------------------------------------------------------------------------------------------
Implementar una funci´on que rellene un cart´on con los valores iniciales
que contiene. Inicialmente todas las posiciones del cart´on estar´an
vac´ıas. Los 15 valores que contiene y las posiciones que ocupan se generar
´an aleatoriamente usando el siguiente algoritmo.
En primer lugar se generar´a aleatoriamente un n´umero para cada una
de las 9 columnas. La fila en la que se ubicar´a cada uno de estos valores
se generar´a tambi´en aleatoriamente.
A continuaci´on se generar´an aleatoriamente los n´umeros restantes hasta
completar los 5 de cada fila. La columna ocupada por cada uno de ellos
vendr´a dada por su valor.
Para generar los valores aleatorios se utilizar´a la funci´on rand.
Mi CODIGO
void RellenarCarton(Tcarton &carton){
int fila, valor, col=0, cont=0;
int cuantas[FILAS]; //Llevara la cuenta de cuantos valores llevamos en la fila
//Incializamos cuantas a 0
for(int i=0; i<FILAS; i++)
cuantas[i]=0;
//Inicialmente todas las posiciones del carton están vacías
for(int i=0; i<FILAS; i++)
for(int j=0; j<COLUMNAS; j++)
carton.carton[i][j]=V;
//Añadimos un primer elemento a cada columna
while(col<COLUMNAS){
fila=rand()%3;
//Para cada fila elegida al azar comprobamos que no hayan ya 5 elementos.
cont=0;
if(col>=MAXFILAS)
for(int i=0; i<col; i++)
if(carton.carton[fila][i]!=V)
cont++;
if(cont<MAXFILAS){
valor=rand()%10;
carton.carton[fila]=valor+col*10;
cuantas[fila]++;
}
}
while(col<COLUMNAS){
fila=rand()%3;
// Contamos cuantos valores hay en la fila
//Incializamos cont=0 para que pueda empezar desde 0 cada vez que compruebe el numero de elementos en una fila
cont=0;
if(col>=MAXFILAS)
for(int j=0; j<col; j++){
if(carton.carton[fila][j]!=V)
cont++;
else if(cont>=MAXFILAS)
break;
}
//Comprobamos que no haya otro valor en esa posicion y que no llegamos al maximo
if(carton.carton[fila][col]==V && cont<MAXFILAS){
valor=rand()%10;
carton.carton[fila]=valor+col*10;
cuantas[fila]++;
}
}
col++;
}