Ir para conteúdo
Fórum Script Brasil
  • 0

Ajuda com estrutura de dados


gustavo.rotondo

Pergunta

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 para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 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 para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...