Salve ragazzi io avrei un problema di uno svolgimento di un esercizio che dice:
"Date due matrici A e B di valori interi acquisite da tastiera, scrivere un programma in linguaggio C che mediante uso di funzione (passare le due matrici e ritornare per valore la risposta…) determini se una di esse è sottomatrice dell’altra.
Le dimensioni delle matrici devono essere max 5x5"
Qualcuno che sia in grado di aiutarmi perchè la parte dell'input sono riuscito a svolgerla ma il controllo non è corretto e non riesco a farlo
#include <stdio.h>
#include <stdlib.h>
int main(){
int n,m,r,c,i,j,A[5][5],B[5][5],esito;
/*Inserimento delle righe e colonne della matrice A*/
do{
printf("Quante righe vuoi inserire nella prima matrice (MAX 5 MIN 1)\n==> ");
scanf("%d",&n);
}while((n<1)||(n>5));
do{
printf("Quante colonne vuoi inserire nella prima matrice (MAX 5 MIN 1)\n==> ");
scanf("%d",&m);
}while((m<1)||(m>5));
system("cls");
/*Inserisco gli elementi della matrice di A*/
printf("***********************\n");
printf("* MATRICE A *\n");
printf("* *\n");
printf("***********************\n");
for(i=0;i<n;i++){
for(j=0;j<m;j++){
printf("[%d][%d]==> ",i+1,j+1);
scanf("%d",&A[i][j]);
}
}
/*Inserimento delle righe e colonne della matrice B*/
do{
printf("Quante righe vuoi inserire nella seconda matrice (MAX 5 MIN 1)\n==> ");
scanf("%d",&r);
}while((r<1)||(r>5));
do{
printf("Quante colonne vuoi inserire nella seconda matrice (MAX 5 MIN 1)\n==> ");
scanf("%d",&c);
}while((c<1)||(c>5));
/*Inserisco gli elementi della matrice di A*/
printf("***********************\n");
printf("* MATRICE B *\n");
printf("* *\n");
printf("***********************\n");
for(i=0;i<r;i++){
for(j=0;j<c;j++){
printf("[%d][%d]==> ",i+1,j+1);
scanf("%d",&B[i][j]);
}
}
/*Funzione dove controllo se la matrice B è sotto matrice di A*/
sottomatrice(&A[5][5],&B[5][5],&n,&m,&r,&c,&esito);
if((esito==1)||(esito==0)){
printf("La matrice B e' sottomatrice di A\n");
}else{
printf("La matrice B non e' sottomatrice di A\n");
}
return 0;
}
void sottomatrice( int d[5][5],int e[5][5],int *x,int *y,int *z,int *v,int *e){
int i,j,i2,j2;
for(i=0;i<*x;i++){
for(j=0;j<*y;j++){
for(i2=0;i2<*z;i2++){
for(j2=0;j2<*v;j2++){
if(d[i][j]==e[0][0]){
if(d[i][j]==e[1][1]){
*e=1;
}else{
*e=0;
}
}
}
}
}
}
}