Buenos dias!!!!
Estoy dandole duro a la programada pero en esta ocasión tengo un problema con una matriz, donde tengo que validar los datos de entrada del usuario y que estos no se repitan unos vez ingresados, por ejemplo:
usuario ingresa letra a,
usuario ingresa letra b
usuario ingresa letra c
usuario ingresa letra a----- Por favor ingrese un elemento diferente(es aqui donde sustituye la letra o elemento ingresado y llena ese espacio con un elemento que no este repetido en la matriz)
la matriz es de elementos char y va todo en un menu while, pero es en este punto del case donde necesito su ayuda.
adjunto el codigo que llevo, muchas gracias.
case 3:
system ("cls");
cout<<"INGRESE 12 ELEMENTOS.\n";
for(j=0;j<4;j++)
{
for(k=0;k<3;k++)
{
cin>>matriz[j][k];
for(h=0;h<j;h++)
{
for(i=1;i<k;i++)
{
mat[h]=matriz[j][k];
if (matriz[j][k] =! mat[h])
{
cout<<"EL VALOR INGRESADO YA EXISTE EN LA MATRIZ!!!!\n\nINGRESE UN NUEVO VALOR: ";
cin>>matriz[j][k];
}
}
}
}
}
cout<< "PRESIONE UNA TECLA PARA CONTINUAR ";
getch();
break;
MUCHAS GRACIAS DE ANTE MANO
Es exclusivamente con letras?
Es exclusivamente con UN SOLO caracter?
Pregunto eso por que puedes tener un arreglo Lineal inicializado en 0 con el mismo tamaño de la posible entrada. Estas serian como banderas.
Cualdo pides el dato a insertar evaluas que dicho arreglo este seteado en 0 y si lo esta agregas el dato a la matriz y ese valor del arreglo de validacion lo igualas a 1 y cuando vuelva a caer ese valor, el arreglo ya sera 1 y no entrara al If...
Ejemplo eso estaria dentro de un ciclo despues de que pides el dato agregar.
if(arreglo_no_repetidos[valor_aletorio] == 0) {
matriz[i] = valor_aletorio;
i++;
arreglo_no_repetidos[valor_aletorio] = 1;
}
Ya que suba mi video a youtube te lo dejare copiado por aqui, en caso de que lo quierasa ver.
Saludos!
el detalle es el siguiente:
es una matriz de tipo char
char matriz[4][3];
es aqui donde tengo que ver una validacion de comparacion con el parametro de entrada con los datos que hay, para que asi no se repitan los valores, ya sean numericos o letras.
gracias !!!!!
El mismo codigo aplica:
char arreglo_no_repetidos[255] = "";
if(arreglo_no_repetidos[valor_ingresado] == 0) {
matriz[i][j] = valor_ingresado;
i++;
arreglo_no_repetidos[valor_ingresado] = 1;
}
Te dejo el enlace al video que te comente espero y te sirva:
[youtube=640,360]https://www.youtube.com/watch?v=lWMJjQ81ORQ[/youtube]