#include<stdio.h>
#include <time.h>
#include<stdlib.h>
#define N 3
#define M 3
#define O 3
void stampamatrice1(int matrice1[N][N]);
void stampamatrice2(int matrice2[M][M]);
void stampamatrice3(int matrice3[O][O]);
int main()
{
int i,j,p,q,s,t;
int matrice1[N][N];
int matrice2[M][M];
int matrice3[O][O];
srand(time(NULL));
for(i=0; i<N; i++)
for(j=0; j<N; j++)
matrice1[i][j]=rand()%10 ;
printf("\n Genero una matrice1 di dimensioni %dX%d:\n\n",N,N);
stampamatrice1(matrice1);
//srand(time(NULL));
for(p=0; p<M; p++)
for(q=0; q<M;q++)
matrice2[p][q]=rand()%10 ;
printf("\n Genero una matrice2 di dimensioni %dX%d:\n\n",M,M);
stampamatrice2(matrice2);
//srand(time(NULL));
for(t=0; t<O; t++)
for(s=0; s<O; s++)
matrice3[t][s]=rand()%10 ;
printf("\n Genero una matrice3 di dimensioni %dX%d:\n\n",O,O);
stampamatrice3(matrice3);
getchar();
}
void stampamatrice1(int matrice1[N][N])
{
int i,j;
for(i=0; i<N; i++)
{
for(j=0; j<N; j++)printf("%4d",matrice1[i][j]);
printf("\n\n");
}
}
void stampamatrice2(int matrice2[M][M])
{
int p,q;
for(p=0; p<M; p++)
{
for(q=0; q<M; q++)printf("%4d",matrice2[p][q]);
printf("\n\n");
}
}
void stampamatrice3(int matrice3[O][O])
{
int t,s;
for(t=0; t<O; t++)
{
for(s=0; s<O; s++)printf("%4d",matrice3[t][s]);
printf("\n\n");
}
}
Nei cicli incrementavi sempre i e j, e non le variabili di essi (p-q-r-s)
Se sai farlo, ti conviene creare una sola funzione che riempie le matrici e una sola funzione che le stampa(ovviamente devono avere in input puntatore, dimensione e ,se vuoi, messaggio da visualizzare)