#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[m][n]); } } 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++) /*arrumar aki*/ { if (index1 < (m-1)) { printf(" %d *X(%d) + ",sistema[index1][index2], index1+1); } else { printf("lero "); } } } } 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: \n"); scanf("%d",&a); scanf("%d",&b); sistema = leitormatriz(a,b); impressaomatriz(sistema,a,b); printf("Teste 123 %d", sistema[0][0]); liberarmatriz(sistema,a,b); getch(); return(0); }