| 
				
				programmazione in c aiuto urgente per esame!
			 
 
		programma che alloca dinamicamente 2 matrici e ne fa la matrice somma delle 2!se inserisco un numero di righe maggiore del numero di colonne non funziona mentre al contrario funziona perche'?
 #include <stdio.h>
 
 void Inserisci (int *r,int *c)
 {
 printf ("Inserisci il numero delle righe della matrice:\n");
 scanf ("%d",r);
 printf ("Inserisci il numero delle colonne della matrice:\n");
 scanf ("%d",c);
 }
 
 
 void main()
 {
 int r1;
 int c1;
 int r2;
 int c2;
 int i,j;
 int** mat1;
 int** mat2;
 int** mat3;
 do
 {
 printf ("Prima matrice!\n");
 Inserisci (&r1,&c1);
 printf ("Seconda matrice!\n");
 Inserisci (&r2,&c2);
 }
 while (r1!=r2 && c1!=c2);
 mat1=(int**)malloc(r1*sizeof(int*));
 for (i=0;i<c1;i++)
 mat1[i]=(int*)malloc(c1*sizeof(int));
 mat2=(int**)malloc(r2*sizeof (int*));
 for (i=0;i<c2;i++)
 mat2[i]=(int*)malloc(c2*sizeof(int));
 printf ("Inserisci gli elementi della prima matrice:\n");
 for (i=0;i<r1;i++)
 for (j=0;j<c1;j++)
 scanf ("%d",&mat1[i][j]);
 printf ("La prima matrice e':\n\a");
 for (i=0;i<r1;i++)
 {
 for (j=0;j<c1;j++)
 printf ("%d    ",mat1[i][j]);
 printf ("\n");
 }
 printf ("Inserisci gli elementi della seconda matrice:\n");
 for (i=0;i<r2;i++)
 for (j=0;j<c2;j++)
 scanf ("%d",&mat2[i][j]);
 printf ("La seconda matrice e':\n\a");
 for (i=0;i<r2;i++)
 {
 for (j=0;j<c2;j++)
 printf ("%d    ",mat2[i][j]);
 printf ("\n");
 }
 mat3=(int**)malloc(r1*sizeof (int*));
 for (i=0;i<c1;i++)
 mat3[i]=(int*)malloc(c1*sizeof (int));
 for (i=0;i<r1;i++)
 for (j=0;j<c1;j++)
 mat3[i][j]=mat1[i][j]+mat2[i][j];
 printf ("La matrice somma delle matrici inserite e':\n\a");
 for (i=0;i<r1;i++)
 {
 for (j=0;j<c1;j++)
 printf ("%d    ",mat3[i][j]);
 printf ("\n");
 }
 getch();
 }
 |