Jump to content

[Resolvido] Iniciante-Problema com código


Recommended Posts

Posted

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 ");
}
}
Posted

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.

Posted (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 by thoga31

Knowledge is free!

Posted

(...)

#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.

Posted

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...

Posted

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!

Posted

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.

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.