#include "stdio.h"#include "stdlib.h"#include "conio.h"float **alocaomatriz(int m, int n)/* Funcao Especial para alocação do sistema *//* Variaveis : pointtemp -> Ponteiro temporário*//* index, variável auxiliar para contagem*//* m - linhas , n - colunas */{ int index; float **pointtemp; if ( (m<1) || (n<0)) { printf("Valores de M x N invalidos"); return(NULL); } /* Alocação das linhas */ pointtemp = (float **) calloc(m , sizeof (float *)); if ( pointtemp == NULL ) { printf("**Erro , memoria Insuficiente.**"); return (NULL); } /* Alocação das colunas*/ for (index = 0 ; index < n ; index++) { pointtemp[index] = (float *) calloc(n , sizeof(float *)); if ( pointtemp[index] == NULL ) { printf("**Erro , memoria Insuficiente.**"); return (NULL); } } return(pointtemp);}float **leitormatriz(int m, int n)/* Programa de leitura da matrix*//* Variavies: m - linhas , n - colunas *//* index1, index2, variaveis auxiliare de contagem*//* sistema => ponteiro de ponteiros, matriz*/{ int index1, index2; float **sistema; sistema = alocaomatriz(m,n); for (index1 = 0 ; index1 < m ; index1++) { for ( index2 = 0 ; index2 < n ; index2++) { printf("\nDigite X (%d) (%d): ", index1 + 1, index2 + 1); scanf("%f",&sistema[index1][index2]); } } return (sistema); }float **liberarmatriz(float **matriz , int m, int n){ int index; if ( (m < 1) || (n < 0)) { printf("Valores de M x N invalidos"); return(matriz); } for (index = 0 ; index < m ; index++) { free(matriz[index]); } free(matriz); return(NULL);}void impressaomatriz(float **sistema ,int m,int n)/*Funcao de impressao da matriz*/{ int index1, index2; for (index1 = 0 ; index1 < m ; index1++) { for (index2=0 ; index2< n ; index2++) { printf(" %f*X(%d)",sistema[index1][index2], index2+1); if (index2 < n-2) { printf(" + "); } else if (index2 == n-2) { printf(" = "); } }//quebrea de linha printf("\n"); } }void arrendondamento(float **sistema, int m , int n){ int index1 , index2; for (index1 = 0; index1 < m ; index1++) { for (index2 = 0; index2 < n; index2++) { if (sistema[index1][index2] < 0.001) { sistema[index1][index2] = 0; } } } }void trocadelinha(float **sistema , int l1, int l2, int m, int n)//m - > números de linhas//n - > números de colunas//sistema -> matriz do sistema//vetorcopia -> vetor temporário//l1 e l2 linhas a serem permutadas{ int index; float *vetorcopia; vetorcopia = (float *) calloc( n+1, sizeof( float )); for (index=0;index < n; index++) { vetorcopia[index] = sistema[l1][index]; } for (index=0; index < n; index++) { sistema[l1][index] = sistema[l2][index]; } for (index=0; index < n; index++) { sistema[l2][index] = vetorcopia[index]; } free(vetorcopia); }void metgaus(float **sistema){ int iteracao; }int main(){ /* Sistema = matriz dos sistema n x m*/ /* a -> n, b-> m */ float **sistema ; int a,b; printf("Digite o tamanho do seu sistema: Linhas x Colunas \n"); scanf("%d",&a); scanf("%d",&b); sistema = leitormatriz(a,b); impressaomatriz(sistema,a,b); trocadelinha(sistema,1,2,a,b); printf("\n"); impressaomatriz(sistema,a,b); liberarmatriz(sistema,a,b); getch(); return(0); }