Melo Posted July 10, 2013 at 03:34 PM Report #518087 Posted July 10, 2013 at 03:34 PM (edited) Boas pessoal, Eu nestas férias decidi começar a aprender programação, e comecei com C, estou a ler o livro do Luís Damas e comecei a semana passada. Eu sei que é um problema básico, mas como comecei à uma semana ainda não me intendo bem com matrizes. Este deve ser o programa mais básico com matrizes. #include <stdio.h> #include <stdlib.h> main() { int x, y, matriz[2][2]; for (x=1; x<=2; x++) { for (y=1; y<=2; y++) { printf("Digite um numero : \n"); scanf("&d", &matriz[x][y]); } } for (x=1; x<=2; x++) { for (y=1; y<=2; y++) { printf("%d\n",matriz[x][y]); } } system("pause"); return(0); } O programa não dá qualquer erro, mas ele apenas faz a leitura do 1º número terminando logo a seguir. Se alguem me poder dizer o que fiz mal agradecia... 👍 Edited July 10, 2013 at 06:12 PM by brunoais geshi
pikax Posted July 10, 2013 at 03:35 PM Report #518088 Posted July 10, 2013 at 03:35 PM (edited) a matriz e o array comeca sempre em 0!!! for (x=0; x<2; x++) { for (y=0; y<2; y++) { printf("%d\n",matriz[x][y]); } } Edited July 10, 2013 at 03:35 PM by pikax Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender. A beleza de um código está em decompor problemas complexos em pequenos blocos simples. "learn how to do it manually first, then use the wizzy tool to save time." "Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."
Melo Posted July 10, 2013 at 04:18 PM Author Report #518097 Posted July 10, 2013 at 04:18 PM (edited) No livro está a dizer que pode começar em 1, também já vi alguns programas com o array a começar em 1. Mas mesmo substituindo o teu código pelo inicial o erro mantem-se #include <stdio.h> #include <stdlib.h> main() { int x, y, matriz[2][2]; for (x=0; x<2; x++) { for (y=0; y<2; y++) { printf("Digite um numero : \n"); scanf("&d", &matriz[x][y]); } } for (x=0; x<2; x++) { for (y=0; y<2; y++) { printf("%d\n",matriz[x][y]); } } system("pause"); return(0); } Edited July 10, 2013 at 06:11 PM by brunoais geshi
pikax Posted July 10, 2013 at 04:22 PM Report #518099 Posted July 10, 2013 at 04:22 PM No livro está a dizer que pode começar em 1, também já vi alguns programas com o array a começar em 1.Qual e' o livro?? Em C os arrays sempre comecam em 0, podes comecar por um, mas tens sempre que dar mais um elemento no final! o teu scanf esta' mal! scanf(" %d", &matriz[x][y]); Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender. A beleza de um código está em decompor problemas complexos em pequenos blocos simples. "learn how to do it manually first, then use the wizzy tool to save time." "Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."
Melo Posted July 10, 2013 at 06:09 PM Author Report #518125 Posted July 10, 2013 at 06:09 PM O livro é o do Luis Damas. Se reparares eu dei mais um, x=<2 em vez de x<2 assim os valores variam de 1 a 2, em vez de 0 a 1. Muito obrigado pela ajuda!!! Não sei como fui meter '&' em vez de '%', não tinha reparado nesse erro. Mais uma vez obrigado!! 👍
HappyHippyHippo Posted July 10, 2013 at 07:17 PM Report #518132 Posted July 10, 2013 at 07:17 PM O livro é o do Luis Damas. Se reparares eu dei mais um, x=<2 em vez de x<2 assim os valores variam de 1 a 2, em vez de 0 a 1. podes escolher 50 números para o euromilhões, se forem entre o 25 e o 75 são todos números correctos ? IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
polska Posted July 10, 2013 at 09:57 PM Report #518181 Posted July 10, 2013 at 09:57 PM No livro está a dizer que pode começar em 1, também já vi alguns programas com o array a começar em 1. É óbvio que pode começar do 1, mas isso quer dizer que o programador optou por começar a guardar resultados a partir da posição 1 e não da 0, não quer dizer que os arrays ou matrizes começam mesmo na posição 1.. Lembro-me de no livro dizer que as matrizes e arrays começam sempre na posição 0, mas por acaso não me lembro desses exemplos, a verdade é que podem confundir o leitor. Corrige um sábio e ele mais sábio ficará. Corrige um ignorante e um inimigo ganharás.
pikax Posted July 10, 2013 at 10:27 PM Report #518190 Posted July 10, 2013 at 10:27 PM Se bem me lembro do livro, ele diz que pode-se comecar no 1 mas tem-se que acrescentar mais um valor ao tamanho do array! Por muito mais que que estude só aprendo uma coisa, que ainda tenho muita coisa para aprender. A beleza de um código está em decompor problemas complexos em pequenos blocos simples. "learn how to do it manually first, then use the wizzy tool to save time." "Kill the baby, don't be afraid of starting all over again. Fail soon, learn fast."
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now