humberto Postado Novembro 26, 2004 Denunciar Share Postado Novembro 26, 2004 aí galera...beleza? como faço para passar uma matriz como parâmetro?? to com um probleminha pra calcular a diagonal de uma matriz quadradamat[2][2] ..como fica o parametrofiz 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]); } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 iSoron Postado Novembro 26, 2004 Denunciar Share Postado Novembro 26, 2004 Com meus poucos de conhecimentos de C++, sei que é mais facil usar a notação de ponteiros para isso. O código, então, ficaria:int somaDiagonal(**matriz)Talvez tenha uma maneira melhor. Sei lá... []'siSoron. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 rodfraga Postado Novembro 26, 2004 Denunciar Share Postado Novembro 26, 2004 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 )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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
humberto
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:
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
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.