Binder Posted December 18, 2011 Report Share Posted December 18, 2011 Olá pessoal, estou fazendo um algoritimo simples aqui, que que leia uma matrix 3x3 e inverta as linhas pelas colunas, conforme oexemplo abaixo:Matriz Original:1 2 3 4 5 6 7 8 9 Matriz Invertida 1 4 7 2 5 8 3 6 9 Ou seja, onde os valores eram linhas, ficaram colunas.. Fiz meu algoritimo, mas está dando problema em 3 valores: Minha Matriz: 1 4 7 4 5 8 7 8 9 Meu código: #include <stdio.h> #include <stdlib.h> int main() { int m[3][3],i,j; //preenche a matriz for(i=0;i<3;i++) { for(j=0;j<3;j++) { printf("Digite 9 valores:"); scanf("%d",&m[i][j]); } } //logica do problema for(i=0;i<3;i++) { for(j=0;j<3;j++) { m[i][j] = m[j][i]; } } printf("\n"); printf("Matriz invertida:"); //imprime matriz for(i=0;i<3;i++) { printf("\n"); for(j=0;j<3;j++) { printf("%4d",m[i][j]); } } printf("\n"); system("pause"); }//main Quote Link to comment Share on other sites More sharing options...
0 mJi Posted December 18, 2011 Report Share Posted December 18, 2011 O que ocorre é que ao fazer essa atribuição:m[i][j] = m[j][i];Você vai modificar algumas posições que serão atribuidas nos laços seguintes. Ou seja, você troca metade do vetor, e ao passar da metade, os números vão ser atribuidos novamente ás suas posições originais, fazendo com que o vetor fique 'espelhado' (Note as diagonais primarias).Uma maneira de resolver isso é atribuir a matriz transposta à uma matriz auxiliar, e depois atribuir novamente á matriz em questão. Quote Link to comment Share on other sites More sharing options...
Question
Binder
Olá pessoal, estou fazendo um algoritimo simples aqui, que que leia uma matrix 3x3 e inverta as linhas pelas colunas, conforme o
exemplo abaixo:
Matriz Original:
Matriz Invertida Ou seja, onde os valores eram linhas, ficaram colunas.. Fiz meu algoritimo, mas está dando problema em 3 valores: Minha Matriz: Meu código:Link to comment
Share on other sites
1 answer to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.