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 ç_ç