Salve a tutti, sono da poco iscritto, e ogni tanto mi diletto nella programmazione.

Sono ancora all'inizio, ma ho incontrato un bell'ostacolo.

In pratica io ho 1 array unidimensionale L[7], e 2 matrici, A[7][2] e R[12][3].


codice:
#include <stdio.h>
#include <stdlib.h>
#define N 12
#define M 7

void confrontamatrice(int [], int[][2], int [][3]);

int main(){
    
    int L[N] = {4, 18, 1, 12, 8, 10, 7, 16, 5, 9, 20, 15};
    int A[M][2] = {{12, 8}, {20, 9}, {9, 7}, {6, 17}, {4, 15}, {3, 16}, {10, 8}};
    int R[N][3];
    int d = 0, f = 0;
    
    confrontamatrice(L, A, R);
    
    printf("Stampa della matrice R ordinata per Posto, Persona e Persona\n\n");
    for( d = 0; d <= 6; d++){
          printf("%d %d %d\n", R[d][0], R[d][1], R[d][2]);
          }
    
return 0;
}
In pratica con la funzione confrontamatrice devo confrontare il vettore L con la matrice A, per vedere se nel vettore L sono vicini due elementi presenti nelle matrice A della stessa colonna.

Ad esempio nel vettore L sono vicini in posizione 3 i numeri 12 e 8, che sono la prima riga della matrice A.

Quindi, se trova corrispondenza, deve scrivere nella matrice R, la posizione e quindi i due elementi che erano vicini.

Ecco io non riesco a fare questo, ho pensato a un doppio ciclo for per leggere la matrice + un ciclo for per leggere il vettore, qualcosa del tipo:

codice:
void confrontamatrice(int tavolo[N], int antipatie[M][2], int risultato[N][3]){
     
int i, j, k;
     
     
          for(i = 0; i <= 6; i++){
                for(j = 0; j <= 1; j++){
                      for( k = 0; k <= 11; k++){
Ma quindi non riesco ad andare avanti, ed ogni cosa che ho provato estrae risultati improponibili.. voi come fareste? Mi ci sto disperando ç_ç