Como hago para que en una matriz cuadrada sume el triangulo superior al triangulo inferior, es decir ....por ejemplo ingreso una matriz de 3x3 asi .....
|2 3 1|
|4 5 6|
|3 4 1|
y sumar: (fila1 y columna2) con (fila2 y columna1)=3+4=7
(fila1 y columna3) con (fila3 y columna1)=1+3=4
(fila2 y columna3) con (fila3 y columna2)=6+4=10
entonces que me muestra la nueva matriz que sera:
| 2 3 1 |
| 7 5 6 |
| 4 10 1|
OJALA ME ENTIENDAN, Y ESPERO QUE ME AYUDEN .........
es que yo solo implemente el código para ingresar una matriz :-\.....pero quisiera que el programa hiciera lo que le dije anteriormente PARA MATRICES DE nxn.
Estoy trabajando en DEV C++.... :rolleyes:
#include<iostream.h>
#include<stdio.h>
#include<stdlib.h>
using namespace std;
int main()
{
int A[50][50];
int i,j,m,n;
cout<<"Ingrese dimensiones de la matriz: ";
cin>>m;
cin>>n;
/*-----------FORMAR MATRIZ-------------------------*/
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
cout<<"A["<<i+1<<"]"<<"["<<j+1<<"]=";
cin>>A[i][j];
}
}
/*-------------MOSTRAR MATRIZ--------------------------*/
cout<<"\n Matriz A: \n";
{
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
cout<<"\t"<<A[i][j];
}
cout<<"\n";
}
cout<<"\n";
}
/*---------------------------------------------------------*/
system("PAUSE>nul");
return 0;
}
HEEEEEEELLP!!!!!!!!........
Azte una funcion que no es tan dificil...
salu2!
ey!! una vez que tengas la matriz formada puedes hacer lo siguiente:
int a=1;
int b=0;
int c=0; //Declaracion de variables, a y b =fila y columna del primer elemento a sumar; c y d=fila y columna del segundo
int d=1; //elemento a sumar
int counter=0; //Esta variable será el contador que nos servirá para saber cuando parar se sumar
if(numero_filas==numero_columnas || numero_filas<numero_columnas) { //esto no tiene nada que explicar
for(a,b,c,d;a<numero_filas;a++,d++;) { //el bucle se repetirá el numero de filas-1, imagina una matriz 3x3, cuando llegamos a la
//tercera fila, ya solo nos queda sumar dos elementos, el 2-1 y el 1-2 (el 0-0 es el 1º num)
matriz[a]=matriz[a]+matriz[c][d]; //realizamos la suma e incrementamos la variable counter en 1
counter++;
if(counter+1==numero_filas) { //volvamos al ejemplo de la matriz 3x3, el contador estará a 2, como sumamos 1, se pone a 3
//y como 3=3(nº filas) pues hace la ultima suma
matriz[a][b-1]=matriz[a][b-1]+matriz[a-1][d]];
}
}
}
if (numero_columnas>numero_filas) { //bueno esto es igual que antes pero con una matriz con nºcolumnas>nºfilas
matriz[a]=matriz[a]+matriz[c][d];
counter++;
if(counter+1==numero_columnas){matriz[a][b-1]=matriz[a][b-1]+matriz[a-1][d];}
}
Espero haberte ayudado, prueba el código, no lo he probado, lo acabo de inventar, no se si estará bien o mal, es para numero de filas y columnas >1 ;), si quieres generalizar ya tienes una idea de como hacerlo ;), espero que esté bien jeje
un saludo, si tienes algun problema avisa ;)