Omparacion de 2 arrays

(1/1)

Dumy:
Hola estaba por responder el otro tema con el mismo nombre, pero me salio una advertencia, asi que inicio nuevo tema:

Veran estoy intentando solventar esto:

Función “numeroNumeroAciertos”. Devuelve el número de aciertos que ha tenido el usuario.

Se trata de hacer 2 arrays que se deben comparar, tengo entendido que primero debes comparar su tamaño y luego valor a valor cada posición, esto es lo poco que he conseguido, lo que no condigo ss hacer la comparativa y 2 for anidados, algo que no entiendo del todo:

void numeros_de_aciertos() {

//elementos a comparar
//contador de aciertos aciertos
//comparación con if
//bucle

    int f, aciertos,arrayjugador[10],numeroaleatorio[10];

    aciertos = 1;

    int longituddelarreglo = sizeof(arrayjugador) / sizeof(arrayjugador[10]);
    int longituddelotroarreglo = sizeof(numeroaleatorio) / sizeof(numeroaleatorio[10]);

    if(longituddelarreglo !=longituddelotroarreglo) {

        printf("los arreglos no son iguales");

       
    }

}

Si alguien me explicara el procedemiento


MAFUS:
Para conseguir el número de elementos de un array se suele usar el índice 0:

Código:

size_t n_elem = sizeof(array) / sizeof(array[0]);


Lo anterior sólo sirve para un array que está en el mismo bloque, cuando pases este array como parámetro de una función esta información se perderá.

Para saber dos arrays tienen los mismos elementos compáralos elemento a elemento usando el mismo índice:

Código:

bool iguales = true;
for(int i=0; i<n_elem; ++i){
   if(array_1[i] != array_2[i]) {
      iguales = false;
      break;
   }
}

Dumy:
Entonces si te entendi bien:

for(int i=0; i<n_elem; ++i){
   if(array_1 != array_2) {
      iguales = false;

Con el for decimos empieza en la posicion 0 y acaba en la 10 y ckn el if decimos si la posicion (representada en la i), del array 1 no es igual a la posición i del array 2 entonces false

Navegación

[0] Índice de Mensajes