Buongiorno tra una settimana ho un esame e non so come risolvere questo problema:
Scrivere un programma in cui attraverso il generatore di numeri pseudocasuali si generino gli elementi di un array bidimensionale di dimensioni 53 x 53 di interi appartenenti al dominio [-100;+100] (estremi inclusi). Per ogni riga dell'array si calcoli il prodotto dell'elemento posto sulla diagonale principale per l'elemento posto sulla diagonale secondaria. Si vuole conoscere la somma dei prodotti.
Il programma l'ho scritto e funziona il problema è che quando vado a fare la moltiplicazione tra le due diagonali mi moltiplica il primo elemento della diag1 per tutti e 53 gli elementi della diag 2.(nel programma ho scritto "matrice
[j], ma sul forum appare solo "matrice[j]".
Il programma d me fatto è il seguente:
#include <iostream>
#include <cstdlib>
#include <time.h>
#include <cmath>
#define righe 53
#define colonne 53
using namespace std;
int main() {
time_t t;
srand((unsigned)time(&t));
int matrice [righe] [colonne];
int estremo = 101;
int i, j;
int diag1, diag2;
cout<<"Array multidimensionale"<<endl;
for(int i = 0; i<righe; i++){
for(int j = 0; j<colonne; j++){
matrice [i] [j]= (rand() % 101 )- 100;
}
}
for (int i=0;i<righe;i++){
for (int j=0;j<colonne;j++){
cout<<matrice [i] [j]<<" ";
}
cout<<endl;
}
cout<<endl<<"Diagonale principale"<<endl;
for (i=0;i<righe;i++){
for (j=0;j<colonne;j++){
if(i==j){
diag1 = matrice [i] [j];
}
for (i=0;i<righe;i++){
for (j=0;j<colonne;j++){
if(i==j){
cout<<matrice [i] [j]<<" "<<endl;
}
}
}
}
}
cout<<endl<<"Diagonale secondaria"<<endl;
for(i=0;i<righe;i++){
for(j=colonne-1;j>=0;j--){
if(i==(colonne-1)-j){
diag2 = matrice [i] [j];
}
for(i=0;i<righe;i++){
for(j=colonne-1;j>=0;j--){
if(i==(colonne-1)-j){
cout<<matrice [i] [j]<<" "<<endl;
}
}
}
}
}
//PRODOTTO
for (i=0;i<righe;i++){
for (j=0;j<colonne;j++){
if(i==j){
diag1 = matrice [i] [j];
for(i=0;i<righe;i++){
for(j=colonne-1;j>=0;j--){
if(i==(colonne-1)-j){
diag2 = matrice [i] [j];
int prodotto = 0;
prodotto = diag2 * diag1;
cout<<endl<<"Prodotto "<<i<<" = "<<prodotto<<endl;
}
}
}
}
}
}
return 0;
}