PDA

Visualizza la versione completa : [C++] Matrice e vettore in uscita


GiuliS
18-06-2018, 20:28
Ciao a tutti!
Devo realizzare questa funzione: funzione che memorizzi in un vettore di uscita gli elementi pari della matrice.
Ho gi scritto il codice ma purtroppo quando vado a stampare a video il vettore questo mi viene riempito da tutti 0 (la dimensione del vettore corretta)



void estrai_pari(Matrice A, int nr, int nc, Vettore pari, int& k)
{
k=0;
for(int i=0;i<nr;i++)
{
for (int j=0;j<nc;j++)
{
if(A[i][j]%2==0)
{
pari[k]=A[i][j];
k++;
}
}
}
}



Grazie :)

oregon
19-06-2018, 07:47
Usa i tag code per il codice

Cosa Vettore? Come chiami la funzione?

GiuliS
19-06-2018, 08:02
Matrice e vettore sono dei typedef. Io programma non mi da nessun errore, credo sia sbagliata la parte in cui assegno i valori della matrice al vettore.

oregon
19-06-2018, 10:15
Puoi mostrare i typedef e il codice del main di chiamata della funzione e presentazione dei risultati?

GiuliS
19-06-2018, 10:25
code :
using namespace std;
#include<iostream>
#include<cstdlib>
#include<ctime>
#define DIMR 10
#define DIMC 10


typedef int Matrice[DIMR][DIMR];
typedef int Vettore[DIMR];


// Prototipi delle funzioni sviluppate
void stampa(Matrice A, int nr, int nc);
void estrai_pari(Matrice A, int nr, int nc, Vettore pari, int& k);
void output_vet (Vettore v, int dim);




// Funzione stampa
void stampa(Matrice A, int nr, int nc) {
int i,j;
for (i=0;i<nr;i++) {
cout<<endl;
for(j=0;j<nc;j++) cout<<A[i][j]<<"\t";
}
cout<<endl;
}




/*funzione che memorizzi in due vettori di uscita gli elementi pari della matrice
void estrai_pari(Matrice A, int nr, int nc, Vettore pari, int& k)
{
k=0;
for(int i=0;i<nr;i++)
{
for (int j=0;j<nc;j++)
{
if(A[i][j]%2==0)
{
pari[k]=A[i][j];
k++;
}
}
}
}




void output_vet (Vettore v, int dim)
{
for (int i=0;i<dim;i++)
{
cout<<v[dim]<<" ";
}
}


int main(){
int nr,nc,k,m,max;
Matrice A;
Vettore pari;
srand(time(NULL));
cout<<"\t Elaborazione di un'IMMAGINE BIOMEDICALE \t"<<endl<<endl;
cout<<"Generazione random della Matrice di Interi..."<<endl<<endl;
system("PAUSE");
// Generazione random della matrice
cout<<endl;
nr=(rand()%8)+2;
nc=(rand()%8)+2;
cout<<"Numero di righe della Matrice: "<<nr<<endl;
cout<<"Numero di colonne della Matrice: "<<nc<<endl;
for (int i=0;i<nr;i++)
for(int j=0;j<nc;j++) A[i][j]=rand()%256;
cout<<"Matrice generata:"<<endl<<endl;
stampa(A,nr,nc);
system("PAUSE");


estrai_pari(A,nr,nc,pari,k);
cout<<"Vettore costituito dagli elementi pari della matrice:"<<endl;
output_vet (pari,k);
cout<<endl;

system("PAUSE");
return 0;
}

oregon
19-06-2018, 23:29
Questa linea

cout<<v[dim]<<" ";

sbagliata, come sbagliata anche questa linea

typedef int Vettore[DIMR];

Vedi tu perch

LeleFT
20-06-2018, 11:06
@GiuliS: quando posti del codice, inseriscilo all'interno degli appositi tag CODE (c' il pulsante '#' nell'editor che li inserisce automaticamente).


Ciao. :ciauz:

Loading