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

Matriz


humberto

Pergunta

aí galera...beleza?

como faço para passar uma matriz como parâmetro??

to com um probleminha pra calcular a diagonal de uma matriz quadrada

mat[2][2] ..

como fica o parametro

fiz assim e dá erro:

 
void main(void)
{
     int mat[2][2],i,j;

     for(i=1;i<3;i++)
     {   for(j=1;j<3;j++)
        {
            printf("Digite %d numero\n",mat[i][j]);
            scanf("%d",&mat[i][j]);
        }
     }
     printf("Soma da diagonal é %d",soma_diagonal(mat[1][1],mat[2][2]);

}

int soma_diagonal(int matriz[][2])
{
    return(matriz[1][1]+matriz[2][2]);
}

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Pronto, dei uma olhada no código(depois de responder sua PM ):

Primeiro: Erro em passar matriz por parâmetros? Nenhum. Seu código está correto quanto a isso. O erro está no código. Pra começar (C++ não checa isso mas é um erro) : você declara uma matriz mat[2][2]. Isso significa que são dois elementos por dois. O primeiro elemento de uma matriz é 0, então, quando você faz referência à mat[2][2], você devia fazer mat[1][1] que é o último elemento.

Segundo, falta um ")" em:

printf("Soma da diagonal é %d",soma_diagonal(mat[1][1],mat[2][2]);

no final..

Não chequei os laços para ver se o funcionamento do programa ocorre de maneira correta. Dica: melhore a legibilidade do seu código, inserindo espaços entre condições de atribuição e igualdade( exemplo: x=4 fica x = 4 e etc... ), linhas entre laços aninhados e etc...

(Não liguem, andei lendo muito Deitel laugh.gif )

Aqui está o código correto, quanto a sintaxe (verifique sua lógica):

void main(void)
{
    const int tamdoarray = 2;
    int mat[ tamdoarray ][ tamdoarray ],i,j;

    for ( i = 1; i < tamdoarray; i++ ) {
       for ( j = 1; j < tamdoarray; j++) {
           printf("Digite %d numero\n",mat[i][j]);
           scanf("%d",&mat[i][j]);
       }
    }
    printf("Soma da diagonal é %d", soma_diagonal(mat[0][0],mat[1][1]));

}

int soma_diagonal(int matriz[][2])
{
   return(matriz[0][0] + matriz[1][1]);
}

Falou,

Rodrigo

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...