MarcelPR Postado Maio 18, 2010 Denunciar Share Postado Maio 18, 2010 Olá galera pintou uma duvida num outro exercicio aqui:Crie um programa para imprimir na tela a matriz transposta deuma dada matriz quadrada. Assuma que a dimensão máxima da matrizseja 10x10. Inicialmente, o usuário deve inserir a dimensão damatriz.Já fiz a parte de montar a matriz, agora preciso imprimir a transposta dela!O q eu preciso?#include<stdio.h> #include<conio.h> #define MAX 10 float max_in[MAX][MAX]; main() { int i ,j ,LIN ,COL; printf("Entre com as dimensoes da matriz(lin,col):"); scanf("%d,%d",&LIN,&COL); for(i=0;i<LIN;i++) { for(j=0;j<COL;j++) { printf("Digite elemento%dx%d(lin,col):",i+1,j+1); scanf("%f",&max_in[i][j]); } scanf("\n%f ", &max_in[j][i]); } getch(); } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 RonaldoRG Postado Maio 18, 2010 Denunciar Share Postado Maio 18, 2010 É só usar a definição da matriz transposta:Sendo a matriz A(i,j) a transposta dela vai ser A(j,i). O número de colunas da transposta de A é o número de linhas da matriz A e o número de linhas da transposta de A é o número de colunas de A. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 MarcelPR Postado Maio 19, 2010 Autor Denunciar Share Postado Maio 19, 2010 Sim, eu sei desta definiçãomais queria saber como montar a lógicaseria sóh o printf com o i no lugar do j?abraço! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 RonaldoRG Postado Maio 19, 2010 Denunciar Share Postado Maio 19, 2010 seria sóh o printf com o i no lugar do j?Exatamente, agora cuidado com as variações da linha e coluna porque o número de colunas da transposta de A é o número de linhas da matriz A e o número de linhas da transposta de A é o número de colunas de A.Abraço. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 MarcelPR Postado Maio 19, 2010 Autor Denunciar Share Postado Maio 19, 2010 Não to conseguindoq q eu tenho que arrumar?#include<stdio.h> #include<conio.h> #define MAX 10 float max_in[MAX][MAX]; main() { int i ,j ,LIN ,COL; printf("Entre com as dimensoes da matriz(lin,col):"); scanf("%d,%d",&LIN,&COL); for(i=0;i<LIN;i++) { for(j=0;j<COL;j++) { printf("Digite elemento%dx%d(lin,col):",i+1,j+1); scanf("%f/t",&max_in[i][j]); } } for(j=0;j<LIN;j++) { for(i =0;i<COL;i++) { printf("A matriz e\n %d\t %d\t",j+1,i+1); scanf("%d",&max_in[j][i]); } } getch(); } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 RonaldoRG Postado Maio 19, 2010 Denunciar Share Postado Maio 19, 2010 Você se enrolou com os intervalos da matriz. Como eu disse antes:agora cuidado com as variações da linha e coluna porque o número de colunas da transposta de A é o número de linhas da matriz A e o número de linhas da transposta de A é o número de colunas de A.Então vai o seu código concertado para mostrar a matriz transposta:... for(i=0; i<COL; i++) { for(j=0; j<LIN; j++) { printf("A matriz e\n %d\t %d\t = %f",j+1,i+1, max_in[j][i]); //scanf("%d",&max_in[j][i]); <= Pra que esse scanf aqui? } }Vê se dá certo ai e posta o resultado. Abraço. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 MarcelPR Postado Maio 20, 2010 Autor Denunciar Share Postado Maio 20, 2010 Ta quase certo, mais não está imprimindo em forma de matriz.E ta imprimindo " A matriz e" em todas as linhas também!O que seria? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 RonaldoRG Postado Maio 21, 2010 Denunciar Share Postado Maio 21, 2010 Tá imprimindo em linha porque você botou o printf pra imprimir assim:printf("A matriz e\n %d\t %d\t = %f",j+1,i+1, max_in[j][i]);Pra imprimir na forma de matriz você tem que imprimir uma nova linha a cada mudança de linha no for. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 MarcelPR Postado Maio 21, 2010 Autor Denunciar Share Postado Maio 21, 2010 Este printf foi o que voce me passou, como seria o certo então? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 RonaldoRG Postado Maio 21, 2010 Denunciar Share Postado Maio 21, 2010 O printf que usei foi o mesmo que você postou anteriormente. Pra sair em formato de matriz é mais ou menos assim:for(i=0; i<COL; i++) { for(j=0; j<LIN; j++) { printf("%f" , max_in[j][i]); } printf("\n"); }Vê se dá certo ai e posta o resultado. Abraço. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 MarcelPR Postado Maio 25, 2010 Autor Denunciar Share Postado Maio 25, 2010 É isso ai amigoestá certinho!Obrigado, só uma duvida,como q faço pra tirar os zeros q imprimem junto com os numeros q digitei anteriormente?O resto está funcionando corretamente!#include<stdio.h> #include<conio.h> #define MAX 10 float max_in[MAX][MAX]; main() { int i ,j ,LIN ,COL; printf("Entre com as dimensoes da matriz(lin,col):"); scanf("%d,%d",&LIN,&COL); for(i=0;i<LIN;i++) { for(j=0;j<COL;j++) { printf("Digite elemento%dx%d(lin,col):",i+1,j+1); scanf("%f/t",&max_in[i][j]); } } for(i=0; i<COL; i++) { for(j=0; j<LIN; j++) { printf("%f", max_in[j][i]); } printf("\n"); } getch(); } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 RonaldoRG Postado Maio 25, 2010 Denunciar Share Postado Maio 25, 2010 Se você fala o zero depois da virgula, te aconselho a usar "%g" ao invés do "%f" no printf, assim ele mostra a parte decimal quando ela for diferente de zero. ... printf("%g ", max_in[j][i]); ...Abraço. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
MarcelPR
Olá galera pintou uma duvida num outro exercicio aqui:
Crie um programa para imprimir na tela a matriz transposta de
uma dada matriz quadrada. Assuma que a dimensão máxima da matriz
seja 10x10. Inicialmente, o usuário deve inserir a dimensão da
matriz.
Já fiz a parte de montar a matriz, agora preciso imprimir a transposta dela!
O q eu preciso?
Link para o comentário
Compartilhar em outros sites
11 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.