Salve, la seguente procedura dovrebbe cancellare da una matrice di interi il minimo elemento di ogni riga. Il vettore ind[] è un vettore ( precedentemente riempito ) che contiene per ogni "i" l'indice della colonna che contiene il minimo. Purtroppo l'effetto è quello di copiare l'elemento successivo al minimo di ogni singola riga in ogni cella della riga.
Per esempio, la riga di indice 0 è : 1 0 -7 3 quindi ind[0]= 2. La riga in questione anzichè diventare 1 0 3 diventa 3 3 3 . Vi posto il codice:
codice:
int cancella(int mat[][30], int r, int c, int ind[30])
{
int i, k;
for(i=0;i<r;i=i+1)
{
if(ind[i]=(c-1))
{
mat[i][ind[i]-1]=mat[i][ind[i]];
}
else
{
for(k=(ind[i]+1);k<c;k=k+1)
{
mat[i][k-1]=mat[i][k];
}
}
}
c=c-1;
return c;
}