Originariamente inviato da Core23
si ma shiftare come?il mio problema è proprio che non riesco a trovare il giusto algoritmo per svolgere l'esercizio,nè penso di essere in grado di implementarlo
Data una colonna devi prendere elemento per elemento per confrontarlo con quello di un'altra colonna alla stessa riga (di un'altra matrice) per verificare se 2 colonne sono uguali.
Si tratta di un semplice ciclo for. Se hai una matrice double[][] mat, allora tieni "fissa" una colonna con una variabile c e con un ciclo for con indice r cicli sulle righe (il numero di righe è dato da mat.length, la lunghezza della prima dimensione)

Per i confronti tra le colonne delle varie matrici, beh, devi fare un po' di combinazioni. Ma basta ragionarci un pochino.

Da quello che dici "se le tre matrici presentano (in qualunque posizione) una colonna comune" io deduco che in ognuna delle 3 matrici ci sia una colonna con gli stessi valori.

Quindi con le prime due matrici A e B fai: ogni colonna di A la confronto con ognuna delle colonne di B. Hai già capito, tutte le combinazioni possibili. Se A ha 3 colonne e B 3 colonne farai 9 confronti tra colonne.

Appena trovi che 2 colonne, una di A e una di B sono uguali allora scatta il confronto tra questa (di A o B è indifferente) con tutte quelle della matrice C.

Se da questi confronti trovi una uguaglianza, vuol dire che in A, B e C c'è una colonna comune.