Ragazzi ho un problema nel creare una sottomatrice. Probabilmente ciò che sbaglio è nel fatto che sono una frana ad usare il return. Qualcuno può darmi gentilmente un mano ?
#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],sottomatr[row-1][col-1], sr=0, sc=0, FLAG;
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_sottomatrice ( ord, row, col,mat);
output_sottomatrice ( 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&&i<row);
do
{
printf( "\nquale colonna eliminare?( un numero tra 0 e %d )\n", col );
scanf ("%d", &c);
} while(c>0 && j<col);
return r,c;
}
int crea_sottomatrice ( int ord, int row, int col,int mat[][MAX])
{
int i,j,r,c,FLAG,sr,sc,sottomatr[row-1][col-1];
for ( i=0; i<row; i++ )
{
if ( i==r-1 ) {continue;}
if ( FLAG=0 ) {FLAG=0; sr++;}
sc=0;
for ( j=0; j<col; j++ )
{
if ( j==c-1 ) {continue;}
sottomatr[sr][sc]=mat[i][j];
FLAG=1;
sc++;
}return sottomatr[sr][sc];
}
}
void output_sottomatrice ( int ord, int row, int col,int mat[][MAX])
{
int i,j,sottomatr[i][j];
for ( i=0; i<row-1; i++ )
{
printf("\n");
for ( j=0; j<col-1; j++ )
{
printf("%d\t", sottomatr[i][j] );
}
}
printf("\n\n");
}