marialuiza 0 Denunciar post Postado Novembro 9, 2016 Matriz 10x10 não tá funcionando, alguém ajuda? int main() { int m[10][10]; int i,j; for(i=0;i<10;i++) { for(j=0;j<10;j++) { printf("Digite o valor: "); scanf("%d", &m[j]); } } for(i=0;i<10;i++) { for(j=0;j<10;j++) { printf("%d", &m[j]); } printf("\n"); } system("pause"); } Compartilhar este post Link para o post Compartilhar em outros sites
Nefisto 0 Denunciar post Postado Novembro 9, 2016 Ola maria luiza, o unico erro do seu esta nessa linha: printf("%d", &m[j]); A funcao printf ao contrario do scanf recebe um valor e nao um endereço de memoria, e m[j] é um valor ja &m[j] é um endereço. Akeles valores "estranhos" q sao mostrados, nao passam de uma representação em decimal dos endereços de memoria de cada variavel da matriz. Só duas dicas antes de terminar, primeiro evite trabalhar com numeros constantes, oq nós chamamos de "numeros magicos", usar as macros de define para colocar os tamanhos é um otima pratica ;P e procure a opção "CODIGO" do forum, ela identa e facilita a leitura do seu codigo. Espero ter ajudado, GLHF =D #include <stdio.h> #include <stdlib.h> #define TAM 10 int main() { int m[TAM][TAM]; int i,j; for(i=0;i<TAM;i++) { for(j=0;j<TAM;j++) { printf("Digite o valor: "); scanf("%d", &m[i][j]); } } for(i=0;i<TAM;i++) { for(j=0;j<TAM;j++) { printf("%d\n", m[i][j]); } printf("\n"); } system("pause"); } Compartilhar este post Link para o post Compartilhar em outros sites
Wilkyn Fernandes Taborda 0 Denunciar post Postado Janeiro 27, 2020 Em 09/11/2016 at 18:39, Nefisto disse: Ola maria luiza, o unico erro do seu esta nessa linha: printf("%d", &m[j]); Na verdade há duas linhas erradas e não apenas uma. Uma delas é essa que você diz. Por causa do caractere "e comercial" (&) a função printf irá mostrar o endereço de memória da matriz m e não o seu valor. Consequentemente irá aparecer um monte de números "estranhos" na hora de imprimir eles na tela bem como você diz. A outra linha errada é: scanf("%d", &m[j]); Faltam nessas duas linhas de código citadas o segundo índice da matriz m para que as 100 posições tenham seus valores lidos e depois armazenados nela. Como essa matriz é de 10 por 10 posições então não há como o programa armezenar e mostrar corretamente os 100 valores digitados se não for informado o segundo índice que corresponde as colunas da matriz sendo que o primeiro corresponde as linhas. Informar somente as linhas e não as colunas dá em resultados errados na hora de guardar e também mostrar os valores. Então respectivamente: scanf("%d", &m[j]); e printf("%d", &m[j]); Irá ficar: scanf("%d", &m[i][j]); e printf("%d", m[i][j]); Compartilhar este post Link para o post Compartilhar em outros sites