Boa pessoal, primeiro de tudo, boa noite a todos, meu nome é Eduardo e sou novo no forum. Hoje na aula de programação da faculdade meu professor passou o seguinte exercício:  Calcule as raízes de um sistema de n <= 20 equações, onde o calculo das raízes é feita da seguinte forma:  exemplo: n = 5  |A11              | * |X1|  =  |b1| |A21  A22       |    |X2|      |b2| |A31  A32  A33|    |X3|       |b3|  X1 = b1/A11 x2 = (b2 - A11*X1)/A22 X3 = (b3 - A32*X2)/A33  E assim por diante até o n 20  Eu devo ler a matriz das constantes (a matriz dos 'As') e os coeficientes (o vetor dos 'bs') e a partir da soma descrita acima, encontrar os 'Xs'  resumidamente, eu devo resolver um sistema de no máximo 20 equações, em que a cada linha é adicionado um termo a ele, tornando-o em um sistema cuja matriz das constantes é triangular.  No fim das contas o sistema fica assim:  A11*X1 = b1 A21*X1 + A22*X2 = b2 A31*X1 + A32*X2 + A33*X3 = b3  OBS: deve-se usar ponteiros.  Enfim, após esse longo enunciado, o código:  ------------------------------------------------------------------------------------------------------------------------  #include <stdlib.h> #include <stdio.h>  void leitura(); float calcula();  float calcula(int **constante, int *coeficiente, int n, float *X) {     if (n == 0)         return(constante[0][0]/coeficiente[0]); //é o calculo do X1, pois ele é o único que pode ser calculado de primeira.     else     {         X[n] = (coeficiente[n] - calcula(&constante[n][n-1], &coeficiente[n-1], n, &X[n]))/constante[n][n]; //recursiva         n--; // o n do X[n] é a respectiva raiz que está sendo calculada. Nesse caso, ele calcula da última raiz até a primeira, atravéz da recursiva.     } }  void leitura() //função de leitura de todos os itens necessários {     int n, i, j;     printf("Insira o numero de termos do sistema: ");     scanf("%d", &n);     int constantes[n][n], coeficientes[n];     float X[n];     for (i = 0; i < n; i++)         {             for (j = 0; j <= i; j++)                 {                     fflush(stdin);                     printf("Insira o valor da constante A%d%d: ", i+1, j+1);                     scanf("&d", &constantes[j]);                 }         }printf("\n");     for (i = 0; i < n; i++)     {         fflush(stdin);         printf("Insira o valor do %do coeficiente: ", i+1);         scanf("%d", &coeficientes);     }     calcula(&constantes[n][n], &coeficientes[n], n, &X[n]); //chamada da função calcula     for(i = 0; i < n; i++)         printf("X%d = %f", i, X[n]); }  main() {     leitura();      system("PAUSE"); }  ------------------------------------------------------------------------------------------------------------------------ Bom, o meu problema está na função calcula. Eu tentei fazer uma função recursiva mas estou com dúvidas quanto os parâmetro que passei, e com a própria recursiva, pois quando o programa acessa ela, ele da erro fatal e fecha o programa. Como estou no primeiro ano de computação ainda, não manjo muito de ponteiro e meu professor não conseguiu explicar direito isso, então peço que algum de vecês possam me ajudar...  Qualquer outra informação é só perguntar.