Jump to content
Leudassdf

[Resolvido] Iniciante-Problema com código

Recommended Posts

Leudassdf

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

Share this post


Link to post
Share on other sites
Leudassdf

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.

Share this post


Link to post
Share on other sites
thoga31

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!

Share this post


Link to post
Share on other sites
eatg75

(...)

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

Share this post


Link to post
Share on other sites
Leudassdf

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

Share this post


Link to post
Share on other sites
thoga31

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!

Share this post


Link to post
Share on other sites
Leudassdf

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.

Share this post


Link to post
Share on other sites

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.