ESTRAZIONE SOTTOMATRICE

di il
2 risposte

ESTRAZIONE SOTTOMATRICE

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])
?

2 Risposte

  • Re: ESTRAZIONE SOTTOMATRICE

    Ragazzi un ultima cosa per chi non l' avesse capito la variabile ord , sta per ordine della matrice.

    Grazie in anticipo per l' aiuto. Se necessario correggetemi, perchè probabilmente avrò scritto una sacco di cose sbagliate Faccio pratica da poco col C.
  • Re: ESTRAZIONE SOTTOMATRICE

    Sai che e' vietato fare 2 post uguale. e come ti ho detto anche nell'altro post che ti conviene fare un pezzo per volta, e di separare i 2 metodi. da qui ho capito quello che devi fare nel tuo pragramma che continui a non correggere.
Devi accedere o registrarti per scrivere nel forum
2 risposte