C++

di il
3 risposte

C++

Ragazzi mi servirebbe una mano...Ho inserito la dimensione della matrice quadrata,gli elementi al suo interno e ho stampato a video. Adesso la traccia mi chiede di cancellare la penultima riga. Qualcuno saprebbe come fare? Vi allego il mio codice svolto fino a quel punto. (Ho eliminato io il main per aiutarvi nella leggibilità).
#include <iostream>
#define M 10
using namespace std;
void inseriscidimensione(int& dim);
void inseriscimatrice(int mat[M][M],int dim);
void stampamatrice(int mat[M][M],int dim);

void inseriscidimensione(int& dim)
{
do {
cout<<"inserisci la dimensione"<<endl;
cin>>dim;
if(dim<=1 || dim>10) {
cout<<"la dimensione inserita non e' valida"<<endl;

}
} while(dim<=1 || dim>10);
}
void inseriscimatrice(int mat[M][M],int dim){
for(int i=0;i<dim;i++) {
for(int j=0;j<dim;j++) {
cout<<"inserisci elemento di posizione"<<" "<<i<<" "<<j<<endl;
cin>>mat[j];
}
}
}
void stampamatrice(int mat[M][M],int dim){

for(int i=0;i<dim;i++) {
for(int j=0;j<dim;j++) {
cout<<mat[j]<<" ";
}cout<<endl;
}cout<<endl;
}

3 Risposte

  • Re: C++

    Qui non si fanno gli esercizi.

    Prova tu a scrivere del codice e se qualcosa non va, spiega il problema e lo vediamo.
  • Re: C++

    Questo è il mio codice funzionante per quanto riguarda una matrice rettangolare. Ma nel momento in cui mi trovo di fronte una matrice quadrata, non potendo gestire esclusivamente la dimensione delle righe, non so come procedere. Se infatti sostituisco semplicemente a "dimr"--->dim viene eliminata sia l'ultima colonna che l'ultima riga.

    void eliminariga(int mat[M][N], int& dimr, int dimc)
    {
    for(int i=0;i<dimr;i++) {
    for(int j=0;j<dimc;j++) {
    if(mat[j]==mat[dimr-1][j]) {
    mat[dimr-1][j]=mat[j];
    }
    }
    }dimr--;
    }
  • Re: C++

    Basta che nel tuo codice utilizzi una variabile per le righe e un'altra per le colonne, anche se è inizialmente quadrata.

    Quando elimini una riga diventa rettangolare e quindi devi usare il metodo generico.


    P.S. Guarda che il regolamento vieta il crossposting su altri forum ... dove ti rispondiamo ??
Devi accedere o registrarti per scrivere nel forum
3 risposte