
//Diseñar un programa que permita ingresar valores en una
//matriz de 4x4, obteniendo como resultado la suma de la
//diagonal principal y la diagonal secundaria(opcional)
//de esta tambien sacar El mayor y el menor numero en la matriz con sus indices
//adicionalmente sacar el mayor y el menor elemento de filas y colummnas !!
Aqui esta el còdigo que he estado haciendo pero tengo un error logico osea q lo ejecuta normal pero al momento de llegar al mayor elemento x filas y columnas me sale 1.e-1524 etc plz help me :D
#include<iostream.h>
#include<conio.h>
#include<iomanip.h>
void main()
{
const int F=4, C=4;
double num[F][C];
double mayorFILA[F],mayorCOLUMNA[C];
double menorFILA[F], menorCOLUMNA[C];
double sumaP=0, sumaD=0; //diagonal principal y diagona secundaria
int mayorF,mayorC;
int menorF,menorC;
double mayor,menor;
cout<<" M A T R I C E S: D I A G O N A L P R I N C I P A L Y S E C U N D A R I A\n";
cout<<" - - - - - - - -- - - - - - - - - - - - - - - - - - - - - - - - - - - - -\n\n";
cout<<" INGRESE NUMEROS A LA MATRIZ ["<<F<<"x"<<C<<"] :\n";
cout<<" ------- ------- - -- ------ ----- -\n\n";
for(int i=0; i<F; i++)
{
for(int j=0; j<C; j++)
{
cout<<" Ingrese numeros en la matriz [ "<<(i+1)<<" ],[ "<<(j+1)<<" ] : ";
cin>>num[i][j];
}
cout<<endl;
}
//diagonal principal
for(int k=0; k<F; k++)
{
for(int l=0; l<C; l++)
{
if(k==l) // aqui igualamos para que la matriz valla de forma diagonal principal
{ // y que mejor forma de hacerlo asi !!
sumaP=sumaP+num[k][l];
}
}
}
//diagonal secundaria
for(int m=0; m<F; m++)
{
for(int n=0; n<C; n++)
{
if(m==(C-n-1)) //ejemplo si estamos en la Fila 1==(4-2-1) // ponemos -1 ya q cmo sabemos la matriz cuenta desde 0
{ // seria cierta la condicion entonces
sumaD=sumaD+num[m][n]; //sumamos !!y la variable sumaD toma el numero y asi
} //sucesivamente hasta poder sumar todo
}
}
//El mayor y el menor numero en la matriz con sus indices (osea donde se encuentran)!!
menor=num[0][0];
mayor=num[0][0];
for(int q=0; q<F; q++)
{
for(int r=0; r<C; r++)
{
if(num[q][r]>mayor)
{
mayor=num[q][r];
mayorF=q+1;
mayorC=r+1;
}
else
if(num[q][r]<menor)
{
menor=num[q][r];
menorF=q+1;
menorC=r+1;
}
}
}
//Aqui vamos a sacar el mayor y el menor elemento de filas y colummnas !! XD
mayorFILA[0]=num[0][0]; //IGUALANDO VARIABLES
mayorCOLUMNA[0]=num[0][0]; //IGUALANDO VARIABLES
menorFILA[0]=num[0][0];
menorCOLUMNA[0]=num[0][0];
for(int s=0; s<F; s++) // por fila
{
for(int t=0; t<C; t++)
{
if(num[s][t]>mayor[s])
{
mayorFILA=num[s][t]; //mayor por fila
}
else
if(num[s][t]<menor[s])
{
menorFILA=menor[s][t]; //menor por fila
}
}
}
//Ahora vamos x las columnas :D
for(int u=0; u<C; u++)
{
for(int v=0; v<F; v++)
{
if(num[v][u]>mayorCOLUMNA[u])
{
mayorCOLUMNA=num[v][u];
}
else
if(num[v][u]<menorCOLUMNA[u])
{
menorCOLUMNA=num[v][u];
}
}
}
clrscr(); //se va pa otra hoja !! XD
//hacemos un for para botar los numeros para que el usuario pueda
//ver q esto es real :D XD
cout<<" R E S U M E N\n";
cout<<" - - - - - - -\n";
for(int o=0; o<F; o++)
{
for(int p=0; p<C; p++)
{
cout<<setw(8)<<num[o][p];
}
cout<<endl;
}
cout<<endl;
cout<<"------------------------------------------------------------------------------\n\n";
cout<<"\n La suma de la diagonal principal es.....: "<<sumaP;
cout<<"\n La suma de la diagonal secuandaria es...: "<<sumaD;
cout<<"\n El mayor elemento de la matriz es.......: "<<mayor<<" se encuentra...: [ "<<mayorF<<","<<mayorC<<"]";
cout<<"\n EL menor elemento de la matriz es.......: "<<menor<<" se encuentra...: [ "<<menorF<<","<<menorC<<"]";
for(int w=0; w<F; w++)
{cout<<"\n El mayor elemento de la FILA ["<<(w+1)<<"] es...: "<<mayorFILA[w];}
for(int x=0; x<C; x++)
{cout<<"\n El mayor elemento de la COLUMNA ["<<(x+1)<<"] es...: "<<mayorCOLUMNA[x];}
cout<<"\n\n";
for(int y=0; y<F; y++)
{cout<<"\n El menor elemento de la Fila ["<<(y+1)<<"] es...: "<<menorFILA[y];}
for(int z=0; z<C; z++)
{cout<<"\n EL menor elemento de la colummna ["<<(z+1)<<"] es ...:"<<menorCOLUMNA[z];}
}
APreciaria mucha su ayuda gracias :.-)