pasar matriz-triangular a matriz-simetrica

Holden
16 de Marzo del 2004
Necesitaría un algoritmo en C para pasar de una matriz NxN triangular (inferior) a su simetrica. Osea copiar la parte de abajo en la de arriba y que se quede simétrica. Y la matriz la tengo en un fichero de texto y la matriz objetivo tiene que ir a otro de texto.
¿Alguien podría decirme donde conseguirme este algoritmo o similar? Gracias.

jairo
16 de Marzo del 2004
por favor ayuda

noel solw
16 de Marzo del 2004
// program holden.cpp
// written in c++ ver 3.1

#include <conio.h>
#include <iomanip.h>
#include <iostream.h>
#include <stdio.h>

const int N = 5;

void GetMatrix(int a[][N])
{
FILE *in = fopen("holden.in","rt");
for(int i = 0;i < N;i++)
for(int j = 0;j <= i;j++)
fscanf(in,"%d",&a[i][j]);
fclose(in);
} // GET MATRIX

void WriteMatrix(int a[][N])
{
FILE *out = fopen("holden.out","wt");
for(int i = 0;i < N;i++)
{
for(int j = 0;j < N;j++)
fprintf(out,"%5d",a[i][j]);
fprintf(out,"n");
}
fclose(out);
} // WRITE MATRIX

void Show(int a[][N])
{

for(int i = 0;i < N;i++)
{
for(int j = 0;j < N;j++)
if(a[i][j])
cout << setw(5) << a[i][j];
cout << endl << endl;
}
cout << endl << endl;
} // SHOW

void Process(int a[][N])
{
for(int i = 0;i < N;i++)
for(int j = 0;j <= i;j++)
a[j][i] = a[i][j];
} // PROCESS


void main()
{
clrscr();
int a[N][N] = {0};
GetMatrix(a);
cout << "matriz triangular :" << endl << endl;
Show(a);
Process(a);
cout << "matriz simetrica :" << endl << endl;
Show(a);
WriteMatrix(a);
getch();
} // MAIN