Jump to content
Fórum Script Brasil
  • 0

Ajuda com estrutura de dados


gustavo.rotondo

Question

Ola, sou novo no forum então se eu estiver postanto algo de errado por favor me avise.

Tenho que fazer um programa que o usuario digite a ordem de uma matriz, faça a leitura dos elementos e faça a soma dos mesmos. Quando eu compilo ou o programa trava ou da uns valores estranhos [ creio que seja valores de memoria]

#include <stdio.h>
#include <stdlib.h>
int ** criaMatriz (int l, int c)
{
    int ** aux;
    aux = (int **) malloc (l * sizeof (int *));
    int i;
    for (i = 0; i < l; i ++) 
    {
        *(aux + i) = (int *) malloc (c * sizeof (int));
        }
    return aux;
}
void leiaMatriz (int **mat, int l, int c)
{
     int i,ii;
      printf ("digite o numero de linhas e o numero de colunas \n");
    scanf ("%d %d",&l,&c);
    mat = criaMatriz (l,c);
    for (i = 0; i < l; i++)
    {
        for (ii = 0; ii < c; ii++)
        {
            printf ("digite o valor para a posicao A %d%d \n",i,ii);
            scanf ("%d",&mat [i] [ii]);
        }
    }
}
int  somaMatriz (int **mat, int l, int c)
{
    mat = (int **) malloc (c * sizeof (int* ));
    int i,ii,soma;
    soma = 0;
    for (i = 0; i <= l; i ++)
    {
        for ( ii = 0; ii <= c; ii ++)
        {
          soma = soma + *((*mat + i)+ii);
        }
    }
            return soma;
                     
      }
int main ()
{
    int **mat;
    int l,c,i,ii,soma;
    mat = (int **) malloc (c * sizeof (int *));
    leiaMatriz  (mat,l,c);
    soma = somaMatriz (mat,l,c);
    printf ("soma e %d\n",soma);
    system ("pause");
    free (mat);
    return 0;
}
creio que o erro esteja em
soma = soma + *((*mat + i)+ii);

alguém poderia me ajuda? Obrigado desde já

Link to comment
Share on other sites

1 answer to this question

Recommended Posts

  • 0

Mudei o codigo e o programa realiza a soma mas trava depois da soma feita

//Lista 1
// 30/09/2011
// Gustavo Rotondo   E-mail: gustavo_.rotondo@htomail.com

#include <stdio.h>
#include <stdlib.h>
int ** criaMatriz (int linha, int coluna )
{
    int ** aux;
    linha = 0;
    coluna = 0;
    aux = (int **) malloc (linha * sizeof (int *));
    int cont;
    for (cont = 0; cont < linha; cont ++) 
    {
        aux [cont] = (int *) malloc (coluna * sizeof (int));
        }
    return aux;
}
void leiaMatriz (int **matriz, int linha, int coluna)
{
     int cont,cont2;
        for (cont = 0; cont < linha; cont++)
    {
        for (cont2 = 0; cont2 < coluna; cont2++)
        {
            printf ("digite o valor para a posicao A %d%d \n",cont,cont2);
            scanf ("%d",&matriz[ cont ][ cont2 ]);
        }
    }
}
int  somaMatriz (int **matriz, int linha, int coluna)
{
    
    int cont,cont2,soma;
    soma = 0;
    for (cont = 0; cont < linha; cont ++)
    {
        for ( cont2 = 0; cont2 < coluna; cont2 ++)
        {
        soma = soma + ((matriz[cont])[cont2]);
        }
    } 
            return soma;
                     
      }
int main ()
{
    int **matriz;
    int linha,coluna,soma;
    printf ("digite o numero de linhas e o numero de colunas \n");
    scanf ("%d %d",&linha,&coluna);
    soma  = 0;
   matriz = criaMatriz (linha,coluna);
    leiaMatriz  (matriz,linha,coluna);
    soma = somaMatriz (matriz,linha,coluna);
    printf ("soma e %d\n",soma);
    system ("pause");
    
    return 0;
}

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...