Aiuto con matrici

di il
4 risposte

Aiuto con matrici

//Dopo aver caricato una matrice 3x3 moltiplica la diagonale principale o la diagonale inversa
#include<iostream>
using namespace std;

//Moltiplica la diagonale principale
double MoltiplicaPrincipale(double m[3][3])
{
double prodotto=1.0;
int i;
for(i=0;i<3;i++)
{
prodotto*= m;
}
return prodotto;
}

//Moltiplica la diagonale inversa
double MoltiplicaInversa(double m[3][3])
{
double prodotto 1.0;
int i;
for(i=3;i>=1;i--)
{
prodotto*=m;
}
return prodotto;
}



int main()
{
int i,j,scelta,a;
double prodotto;
cout<< "Inserisci gli elementi della matrice, prima quelli della prima riga(dx-sx), poi quelli della seconda e poi della terza";
for(i=0;i<3;i++) //ciclo per le righe i
{
for(j=0;j<3;j++) //ciclo per le colonne j di ogni riga i
{
cin>>a[j];
}
}

cout<< "Digita 1 se vuoi moltiplicare gli elementi della diagonale principale"<< endl;
cout<< "Digita 2 se vuoi moltiplicare gli elementi della diagonale inversa"<< endl;
do
{
cin>>scelta;
}
while(scelta==1 | scelta==2)
if (scelta=1) MoltiplicaPrincipale(double m[3][3]);
else MoltiplicaInversa(double m[3][3]);

system("pause");
return 0;
}

Gli errori che mi da sono
prymary expression before double e expected ";" before double in tutte le funzioni
poi mi dice che non ho dichiarato prodotto nella seconda funzione

4 Risposte

  • Re: Aiuto con matrici

    Aggiungi una

    #include <math.h>

    e

    double prodotto = 1.0;

    manca l' =
  • Re: Aiuto con matrici

    Nella seconda funziona manca l'uguale tra double prodotto e 1.0. Nel do-while, va inserito il doppio carattere ||, che è l'OR logico, inserendone solo uno calcoli l'OR tra i bit; nel ciclo for tratti a come fosse una matrice, ma l'hai dichiarata come semplice variabile intera; alle funzioni devi passare il nome della matrice, nel tuo caso a, non double m[3][3]. Nell'if per il confronto va usato il doppio uguale ==.
    E per favore, usa i tag code
  • Re: Aiuto con matrici

    Aggiungo che il calcolo della diagonale inversa è sbagliato. Essendo una matrice 3x3 gli indici di questa vanno da 0 a 2 e non fino a 3. Tu fai partire 1 da e lo fai arrivare ad uno...Dovrebbe partire da 2 ed arrivare a 0
  • Re: Aiuto con matrici

    Salve.

    Ecco alcuni consigli:

    Quando crei matrici setta i parametri come costanti con #define o const

    Nei cicli For la variabile "i" dichiarala dentro al For invece di continuarlo a farlo esternamente.

    Nel main non hai dichiarato la matrice double A[3][3];

    Nelle funzioni manca l assegnazioni di double.

    Non usare sempre la stessa variabile per entrambe le funzioni se non fai subito la stampa.

    Gli altri errore che vedo sono già stati detti dagli altri.

    Spero di essere stato chiaro
Devi accedere o registrarti per scrivere nel forum
4 risposte