Estrazione sottomatrice in C.
La funzione deve estrarre da matrice che acquisisco da tastiera la i-esima riga e la j-esima colonna e deve restituire un altra matrice, priva appunto della i-esima riga e j-esima colonna.
Raga per l' input della matrice non è un problema. Non riesco bene a creare un matrice che mi estragga un i- esima riga e una j-esima colonna. E mettere a video quest' ultima. A proposito tutto ciò si può fare senza allocazione dinamica ? Se si come ?.
#include <stdio.h>
#define MAX 100
void inputmat (int *row, int *col, int mat[][MAX]);
void output_input_mat (int row, int col, int mat[][MAX]);
int elimina_colonne_righe (int row, int col, int mat[][MAX]);
int crea_sottomatrice ( int ord, int row, int col,int mat[][MAX]);
void output_sottomatrice ( int ord, int row, int col,int mat[][MAX]);
main()
{
int modulo, row, col, ord, mat[MAX][MAX];
printf("Inserisci numero di righe:");
scanf("%3d",&row);
printf("Inserisci numero di colonne:");
scanf("%3d",&col);
modulo=(row+col)%2;
printf("La matrice inserita è di tipo:%dx%d, quindi di ordine %d\n",row,col,ord);
inputmat (&row,&col,mat);
output_input_mat ( row, col, mat);
if(modulo==0)
{
elimina_colonne_righe (row, col,mat);
crea_sottomatrici ( ord, row, col,mat);
output_sottomatrici ( ord, row, col, mat);
}
}
void inputmat (int *row, int *col, int mat[][MAX])
{
int i, j;
for(i=0;i<(*row);i++)
{
for(j=0;j<(*col);j++)
{
printf("a[%d][%d]:",i,j);
scanf("%d",&mat[i][j]);
}
}printf("\n");
}
void output_input_mat (int row, int col, int mat[][MAX])
{
int i,j;
for(i=0;i<row;i++)
{
for(j=0;j<col;j++)
{
printf("%3d",mat[i][j]);
}
printf("\n");
}
}
int elimina_colonne_righe (int row, int col, int mat[][MAX])
{
int i,j,r,c;
do
{
printf( "\nquale riga eliminare?( un numero tra 0 e %d )\n", row );
scanf ( "%d", &r);
}while(r<0 || r>m);
do
{
printf( "\nquale colonna eliminare?( un numero tra 0 e %d )\n", col );
scanf ("%d", &c);
} while(c<0 || c>n);
return r,c;
}
int crea_sottomatrice ( int ord, int row, int col,int mat[][MAX])
{
}
void output_sottomatrice ( int ord, int row, int col,int mat[][MAX])
Come completare il codice ? Come fare quelle due funzioni :
1)int crea_sottomatrice ( int ord, int row, int col,int mat[][MAX])
2)void output_sottomatrice ( int ord, int row, int col,int mat[][MAX])
?