Leudassdf Posted September 28, 2013 at 07:22 PM Report #526509 Posted September 28, 2013 at 07:22 PM Boas pessoal, Eu estou a iniciar a minha aprendizagem em c e hoje quando estive a tentar fazer umas coisas bastantes simples deu-me erro. Ora bem a unica coisa que eu queria era que o utilizador escolhe-se a opção que mais lhe convinha... Depois eu iria fazer um if para verificar a opção que ele escolheu... No entanto o programa deixa simplesmente de responder. Ja agora aproveito para esclarecer uma duvida que certamente sera importante No scanf eu tenho que colocar %c porque? sei que tambem posso colocar %f mas nao entendo o que se quer dizer com isso. Deixo o codigo abaixo para que alguem me indique os problemas que tem. #include <stdio.h> #include <stdlib.h> int main() { char escolha ; printf("1-Mostrar Todas as Combinaçoes Euromilhoes\n2-Sair\n"); scanf("%c",&escolha); if (escolha=1){ int numeros[6]; numeros[0]=1;numeros[1]=2;numeros[2]=3;numeros[3]=4;numeros[4]=5;numeros[5]=1;numeros[6]=2; printf(numeros[0]); }else{ printf("Adeus "); } }
thoga31 Posted September 28, 2013 at 07:41 PM Report #526511 Posted September 28, 2013 at 07:41 PM Acerca do %c e do %f, vê isto: http://www.cplusplus.com/reference/cstdio/scanf/ São parâmetros que indicam ao scanf o que é que ele deve esperar ler. btw, porque estás a fazer isto? numeros[0]=1;numeros[1]=2;numeros[2]=3;numeros[3]=4;numeros[4]=5;numeros[5]=1;numeros[6]=2; Knowledge is free!
Leudassdf Posted September 28, 2013 at 07:52 PM Author Report #526512 Posted September 28, 2013 at 07:52 PM Acerca do %c e do %f, vê isto: http://www.cplusplus.com/reference/cstdio/scanf/ São parâmetros que indicam ao scanf o que é que ele deve esperar ler. btw, porque estás a fazer isto? numeros[0]=1;numeros[1]=2;numeros[2]=3;numeros[3]=4;numeros[4]=5;numeros[5]=1;numeros[6]=2; Boas, estou dar valores ao array. Sei que havia uma forma melhor de se fazer mas já nao me recordo.
thoga31 Posted September 28, 2013 at 09:37 PM Report #526514 Posted September 28, 2013 at 09:37 PM (edited) Nota: estás a declarar uma array de 6 elementos e estás a atribuir 7. O nº indicado na declaração é a dimensão e não o nº do último índice! Como estás a atribuir logo após a sua inicialização, podes fazer logo assim: int numeros[7] = {1,2,3,4,5,1,2}; // ou então... int numeros[] = {1,2,3,4,5,1,2}; Edited September 28, 2013 at 09:37 PM by thoga31 Knowledge is free!
HappyHippyHippo Posted September 28, 2013 at 10:15 PM Report #526517 Posted September 28, 2013 at 10:15 PM o programa deixa simplesmente de responder. além di scanf, lê também o do printf : http://www.cplusplus.com/reference/cstdio/printf/ IRC : sim, é algo que ainda existe >> #p@p Portugol Plus
eatg75 Posted September 29, 2013 at 12:26 PM Report #526532 Posted September 29, 2013 at 12:26 PM (...) #include <stdio.h> #include <stdlib.h> int main(int argc, char** argv) { // a forma correta e standard de declarar a funcao main() e assim char escolha = '0'; // e sempre uma boa pratica inicializar as variaveis! puts("1-Mostrar Todas as Combinaçoes Euromilhoes\n2-Sair"); // a funcao puts() aqui e melhor. scanf("%c", &escolha); // aqui na condicao do if estavas a fazer a atribuicao do inteiro 1 a escolha e nao a comparacao do caracter '1' // como o valor da variavel escolha. if (escolha == '1') { int numeros[6] = {1, 2, 3, 4, 5, 6}; // como o Thoga31 disse a forma correta de inicialiazar numeros e com uma // initializer list. // uma das formas correctas de escrever cada elemento do array e algo como : size_t const len = 6; for (size_t i = 0; i < len; ++i) printf("%i ", *(numeros + i)); puts(""); } else puts("Adeus "); } Aqui o teu objectivo e criar um menu, e a forma correcta de faze-lo e atraves do ciclo do ... while pesquisa por esse ciclo e enventuais duvidas que surgirem pergunte-as aqui no forum que ha sempre pessoal disponivel em ajudar. Victarion seized the dusky woman by the wrist and pulled her to him. Victarion - She will do it. Go pray to your red god. Light your fire, and tell me what you see. Moqorro's dark eyes seemed to shine. Moqorro - I see dragons.
Leudassdf Posted September 29, 2013 at 06:43 PM Author Report #526594 Posted September 29, 2013 at 06:43 PM Nota: estás a declarar uma array de 6 elementos e estás a atribuir 7. O nº indicado na declaração é a dimensão e não o nº do último índice! Como estás a atribuir logo após a sua inicialização, podes fazer logo assim: int numeros[7] = {1,2,3,4,5,1,2}; // ou então... int numeros[] = {1,2,3,4,5,1,2}; Eu há uns anos quando dei uma vista de olhos no C fiz a declaração assim. Mas estava na ideia que era necessario adicionar " antes das {. Sendo assim realmente é mais facil. Muito obrigado...
thoga31 Posted September 29, 2013 at 07:02 PM Report #526599 Posted September 29, 2013 at 07:02 PM Eu há uns anos quando dei uma vista de olhos no C fiz a declaração assim. Mas estava na ideia que era necessario adicionar " antes das {. Sendo assim realmente é mais facil. Muito obrigado... Isso é para uma String... char s[100] = "Exemplo\0"; Knowledge is free!
Leudassdf Posted September 29, 2013 at 07:03 PM Author Report #526600 Posted September 29, 2013 at 07:03 PM Aqui o teu objectivo e criar um menu, e a forma correcta de faze-lo e atraves do ciclo do ... while pesquisa por esse ciclo e enventuais duvidas que surgirem pergunte-as aqui no forum que há sempre pessoal disponivel em ajudar. Antes de mais agradeço pelos conselhos e pelas reparações no código. Hoje infelizmente já não terei oportunidade de ver o ciclo do while no entanto amanha já o estudarei.
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