Sono riuscito a risolvere
Ecco il codice integrale nel caso qualcuno fosse interessato, scusate per il thread inutile ma non riesco ad eliminarlo.
Grazie ugualmente![]()
codice:/*Questo programma dovrà far inserire una matrice all'utente Se la matrice risulta quadrata calcolarne il vettore diagonale e da questo vettore fare il cout dei numeri positivi. In caso la matrice non sia quadrata, restituire un meraviglioso errore. */ #include <iostream> using namespace std; //Le variabili int righe ; int** a; int colonne; bool quadrata = false; //Le funzioni bool matriceQuadrata(int a,int b); void inserisciDati(int **array,int righe); int** create2dArray(int rows, int cols); void print(int **ar, int rows, int cols); void calcoloDiagonale(int **ar,int colonne); int main() { //Devo prima di tutto creare la matrice con dei parametri inseriti dall'utente. cout << "Inserire il numero di righe della matrice" << endl; cin >> righe; cout << "Inserire il numero di colonne della matrice" << endl; cin >> colonne; //A questo punto posso creare la matrice. int** a = create2dArray(righe,colonne); //Il primo passo è fare un check se la matrice è quadrata o meno, faccio una funzione. quadrata = matriceQuadrata(righe,colonne); //A questo punto devo restituire un messaggio di errore se la matrice non è quadrata (Lo metterò nell'else) //Invece se la matrice è quadrata, devo calcolarne la diagonale. if(quadrata) { //Per la scrittura della matrice inserisciDati(a,righe); print(a, righe,colonne); //Per il calcolo della diagonale calcoloDiagonale(a,colonne); } else cout << "Errore: La matrice non e' quadrata" << endl; system("PAUSE"); } bool matriceQuadrata(int a, int b) { //Faccio un controllo: radice quadrata significa che il numero delle righe deve essere uguale al numero di colonne. if(a == b) return true; //Se sono diverse ritorno il falso else return false; } void inserisciDati(int **array,int righe) { //Devo fare due nested for for(int i = 0; i < righe; i++) { cout << "Inserire i dati della " << i << "riga della matrice" << endl; for(int j = 0; j < righe; j++) { cin >> array[i][j]; } } } int** create2dArray(int rows, int cols) { int** array = new int*[rows]; for (int row=0; row<rows; row++) { array[row] = new int[cols]; } return array; } void print(int **ar, int rows, int cols) { for (int row=0; row<rows; row++) { for (int col=0; col<cols; col++) { cout << " | " << ar[row][col]; } cout << " | " << endl; } } void calcoloDiagonale(int** ar,int colonne) { int diagonale[colonne]; for(int i = 0; i < colonne; i++) { diagonale[i] = ar[i][i]; if(diagonale[i] > 0) cout << "Gli elementi positivi della matrice sono i seguenti: " << i << " " << endl; } }


Rispondi quotando