Código (c) [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
FILE *ar;
int TotalLineas(char b[20])
{
ar = fopen(b, "r");
int ch,num_lineas=0;
while((ch=fgetc(ar)) != EOF)
if (ch == '\n')
num_lineas++;
return (num_lineas+1);
}
void LlenarMatriz(float a[50][50], int *n)
{
int i, j;
char b[20];
printf("Nombre del archivo: ");
gets(b);
ar = fopen(b, "r");
*n= TotalLineas(b);
for(i=0; i<*n; i++)
{
for(j=0; j<*n+1; j++)
{
fscanf(ar, "%d", &a[i][j]);
// printf("%i", a[i][j]);
}
}
}
void ImpMatriz(float a[50][50], int n)
{
int i, j;
for(i=0; i<n; i++)
{
for(j=0; j<n+1; j++)
{
printf("%i\t", a[i][j]);
}
printf("\n");
}
}
void GaussJordan(float a[50][50], int n)
{
float piv, x, y;
int i, j, k;
for(i=0; i<n; i++)
{
for(j=0; j<n; j++)
{
if(j != i)
{
x = a[i][j];
y = a[j][i];
for(k=0; k<n+1; k++)
a[j][k] = a[j][k]/y*x+a[i][k];
}
}
}
}
int main()
{
int n;
float a[50][50];
/*
printf("Ingrese la cantidad de filas y columnas: ");
scanf("%i", &n);
*/
LlenarMatriz(a,&n);
ImpMatriz(a,n);
GaussJordan(a,n);
system("pause");
return 0;
}
El codigo me tira una matriz de 0 por cada elemento en el archivo de texto desde el que leo la matriz.
¿alguna idea de que podria ser?
ejemplo de matriz en archivo.txt (el archivo se llamara "matriz.txt" :
+6 -2 +2 +4 +12
0 -4 +2 +2 +10
0 0 +2 -5 -9
0 0 0 -3 -3