[ Foro de C++ ]
Sea la matriz cuadrada A n x n , donde cada elemento a i j se encuentra en la fila i y en la columna j. Calcule e imprima :
-El producto de los elementos de la diagonal principal;
-La suma de aquellos elementos para los cuales i < j
-El cuadrado de la suma de los elementos si i > j.
Utilice funciones para generar cada una de las operaciones.
Yo mismo lo hice, así me quedó, espero les ayude:
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <iomanip>
const int maxFilasColumnas = 10;
using namespace std;
void genera_arreglo(int[][maxFilasColumnas],int,int);
void imprime_arreglo(int[][maxFilasColumnas],int,int);
void multiplicacion_diagonal(int[][maxFilasColumnas],int,int);
void suma(int[][maxFilasColumnas],int,int);
void cuadrado(int[][maxFilasColumnas],int,int);
int random(int ,int);
int main(){
int array[maxFilasColumnas][maxFilasColumnas];
int filas=1;
int columnas=1;
cout<<"ingrese la cantidad de filas:"<<endl;
cin>>filas;
cout<<"Ingrese el tamaño de las columnas:"<<endl;
cin>>columnas;
if ((filas<1 || filas>10) || (columnas<1 || columnas > 10)){
cout << "\nParametros no validos! ";
}
else{
genera_arreglo(array,filas,columnas);
imprime_arreglo(array,filas,columnas);
multiplicacion_diagonal(array,filas,columnas);
suma(array,filas,columnas);
cuadrado(array,filas,columnas);
}
return 0;
}
void genera_arreglo(int array[][maxFilasColumnas],int f,int c){
srand(time(NULL));
for(int i=0;i<f;i++) {
for(int j=0;j<c;j++){
array[i][j]= random(5,20);
}
}
}
int random(int min, int max){
if (min > max) return max;
return min + (rand() % (max - min +1 ));
}
void imprime_arreglo(int array[][maxFilasColumnas],int f,int c){
for(int i=0;i<f;i++){
cout<<endl;
for(int j=0;j<c;j++){
cout<<setw(4)<<array[i][j];
}
}
cout<<endl<<endl;
}
void multiplicacion_diagonal(int array[][maxFilasColumnas],int f,int c){
int multi=1;
for (int i=0;i<f;i++){
for(int j=0;j<c;j++){
if(i==j){
multi *=array[i][j];
}
}
}
cout << "Multiplicacion de la Diagonal: "<<multi<<endl;
}
void suma(int array[][maxFilasColumnas],int f,int c){
int suma=array[0][1];
for (int i=0;i<f;i++){
for(int j=0;j<c;j++){
if(i<j){
suma +=array[i][j];
}
}
}
suma= suma-array[0][1];
cout << "Suma de los elementos donde i<j: "<<suma<<endl;
}
void cuadrado(int array[][maxFilasColumnas],int f,int c){
int cuadrado=0;
for (int i=0;i<f;i++){
for(int j=0;j<c;j++){
if(i>j){
cuadrado +=array[i][j];
}
}
}
cuadrado= cuadrado*cuadrado;
cout << "El cuadrado de la suma para los elementos i > j: "<<cuadrado<<endl;
}
(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)