Salve ragazzi...Qualcuno mi potrebbe dare qualche dritta su questa traccia?
Leggere una sequenza di matrici di uguali dimensioni definite dall'utente e calcolare la percentuale di valori diversi nella stessa posizione tra coppie di matrici successive,memorizzando tutte le percentuali opportunemente in una struttura dati. La traccia poi continua ma io non sono riuscita a fare neppure questo primo punto . Perchè per fare la percentuale devo andare a confrontare le due matrici ,ma quando passo la seconda matrice alla funzione PercUguali e provo a stampare per verifica..mi stampa tutt'altro quindi non posso pensare di fare un confronto..come posso passare le due matrici da confrontare ? grazie mille
codice:
void LeggiMatrice(int r,int c,int *mat);
void StampaMatrice(int r,int c,int *mat);
void PercUguali(int r,int c,int *mat,int *mat1);
char scelta;
int k=0;
int main()
{
int righe,colonne;
do
{
cout<<"inserisci dimensione della matrice"<<endl<<"righe"<<endl;
cin>>righe;
cout<<"colonne"<<endl;
cin>>colonne;
}
while(righe<0||colonne<0);
int matrice[righe][colonne];
int *matr=&matrice[0][0];
LeggiMatrice(righe,colonne,matr);
StampaMatrice(righe,colonne,matr);
}
void LeggiMatrice(int r,int c,int *mat)
{
for(int i=0;i<r;i++)
{
for(int j=0;j<c;j++)
{ do
{
cout<<"inserisci elemento di posto"<<i+1<<"X"<<j+1<<endl;
cin>>*(mat+c*i+j);
}
while(*(mat+c*i+j)<0);
}
}
}
void StampaMatrice(int r,int c,int *mat)
{
for(int i=0;i<r;i++)
{
for(int j=0;j<c;j++)
{
cout<<'\t'<<*(mat+c*i+j);
}
cout<<endl;
}
k++;
cout<<k;
do
{
cout<<"continuare?(s/n)"<<endl;
cin>>scelta;
}
while(scelta!='s'&&scelta!='n');
if(scelta=='s')
{
int matr1[r][c];
int *mat1=&matr1[0][0];
if(k==2)
{
PercUguali(r,c,mat,mat1);
}
LeggiMatrice(r,c,mat1);
StampaMatrice(r,c,mat1);
}
}
void PercUguali(int r,int c,int *mat,int *mat1)
{
k=0;
cout<<k;
for(int i=0;i<r;i++)
{
for(int j=0;j<c;j++)
{
cout<<'\t'<<*(mat1+c*i+j);
}
cout<<endl;
}
cout<<"inserire una nuova matrice?(s/n)"<<endl;
cin>>scelta;
if(scelta=='s')
{
LeggiMatrice(r,c,mat);
StampaMatrice(r,c,mat);
}
}