[ Foro de C++ ]

Necesito ayuda, por favor - Matriz cuadrada

29-Jul-2020 08:41
Invitado (Jos?)
1 Respuestas

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.


05-Aug-2020 08:05
Invitado (Jos?)

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.)