salve allora dovrei creare 2 matrici e vedere quali valori compaiono in entrambe per inserirli in un array 1D ma mi sono inchiodato appunto su questa procedura nn so come far ciclare le 2 matrici ..... sorry ma sto sfasato e da stamattina le 8 che sto a studiare ..uffff
codice:#include "stdafx.h" #include "stdlib.h" #include "stdio.h" #include "time.h" #include "math.h" #define SIZE 3 #define SIZE_1 4 void rand ( int *a, int *b); void visualizza ( int *a, int *b); void unione(int *a, int *b, int *c); int main() { int a[SIZE][SIZE]; int b[SIZE_1][SIZE_1]; int c[1000]; srand((int)time(NULL)); rand (&a[0][0],&b[0][0]); visualizza (&a[0][0],&b[0][0]); unione(&a[0][0],&b[0][0],c); return 0; } //* Creo le matrici*// void rand ( int *a, int *b) { int i ,j,k,y; for(i=0;i<SIZE;i++) { for(j=0;j<SIZE;j++) { *(a+SIZE*i+j)= rand()%20; } } for(k=0;k<SIZE_1;k++) { for(y=0;y<SIZE_1;y++) { *(b+SIZE_1*k+y)= rand()%20; } } } //* Visualizza l' array*// void visualizza ( int *a, int *b) { int i ,j,k,y; for(i=0;i<SIZE;i++) { printf("\n"); for(j=0;j<SIZE;j++) { printf("A[%d][%d]= %d\t",i,j,*(a+SIZE*i+j)); } } printf("\n-------------------------------------------------------\n"); for(k=0;k<SIZE_1;k++) { printf("\n"); for(y=0;y<SIZE_1;y++) { printf("B[%d][%d]= %d\t",k,y,*(b+SIZE_1*k+y)); } } } void unione(int *a, int *b, int*c) { int i=0,j=0,k=0,y=0,g=0; int size=0; size=(SIZE*SIZE)+(SIZE_1*SIZE_1); printf("\n"); //*QUI DOVREI FAR CICLARE LE MATRICI E FARE UN CONFRONTO PER POI INMETTERE IL CALORE NELL ARRAY C[]*// if(*(b+SIZE_1*k+y)==*(a+SIZE*i+j)) { c[g]=*(b+SIZE_1*k+y); printf("C[%d]=%d\n",g,c[g]); g++; } }

Rispondi quotando
anche se mi è venuta 1 idea + rapida ovvero portare la matrice 1 interamente nell' array 1d , da li fare un ordinamento (buble sort) ed eliminare i volori uguali , per poi confrontare ogni singolo valore nell' array 1d rispetto la matrice e in caso che il valore esiste gia nell array 1d nn inserirlo in alternativa inseriscilo.
