Ayuda con comparacion de cadenas

bloodhound

Hola,
Estoy haciendo un programa para clase, y me he quedado atascado en un punto. Consiste en comparar los elementos de una cadena para ver si estan repetidos. La cosa es que no se me ocurre como hacerlo. Yo tengo algo así:

spoiler

Pero se que no funciona por que en la primera pasada da error. La cosa es que no se me ocurre como comparar el primero con el resto, el segundo con el resto, y todo ello sin compararlo con ellos mismos, no se si me explico. ¿Alguna idea?

EDIT: Creo que lo he resuelto de una forma un poco mala, pero bueno... ha quedado mas o menos asi

spoiler
Kartalon

Para comparar el primero con el resto, el segundo con el resto y demás sólo necesitas dos bucles anidados...

for(i=0;i<imax;i++)
{
for(j=0;j<jmax;j++){ if(matriz[ i] == matriz[j]) {son iguales}}
}

(más o menos lo que tienes, comprueba índices y asegura que no se desborda ni nada, o pon todo el código y describe más exactamente el flujo de ejecución para saber cuando peta xD)

bloodhound

No, el codigo no me petaba, lo que no sabia era como arreglar lo de las comparaciones. Lo que pasaba era que si los valores eran iguales ponia las condiciones del bucle for a 3 para que saliera de el sin comprobar todo. Pero claro eso pasaba desde el principio ya que el primer elemento de A siempre es igual al primer elemento de A. Entonces necesitaba que no se compararan entre si los mismos elementos. Mas tarde copio el codigo por aqui.

Acabeitor

igual es un poco tarde, de todas formas yo probaría algo así:

for(g=0;g<tam-1;g++){
for(j=g+1;j<tam;j++){
if(jugada[g]==jugada[j]){
//acción a realizar si el elemento está repetido
}
}
}

--------- ejemplo de acción:

repetido=0;
for(g=0;g<tam-1;g++){
if(!repetido){
for(j=g+1;j<tam;j++){
if(jugada[g]==jugada[j]){
//ejemplo de acción a realizar si el elemento está repetido:
repetido=1;
}
}
}
}

Creo que con eso bastaría, espero que te sirva de ayuda.

B

Lo que puedes acer es con 2 variables una qe empieze desde el principio de la cadena y otra desde el final de la cadena y vas comparando si es distinta que se salga del bucle que no que siga hasta que llegen al mismo valor y listo.

Usuarios habituales