1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Duvida (principiante)

Discussão em 'Programação' iniciada por phoenix127, 13 de Março de 2008. (Respostas: 21; Visualizações: 999)

  1. phoenix127

    phoenix127 Power Member

    estou a tentar aprender C sozinho pelos tutoriais do cprogramming.com e uso o dev-c++ como compiler. no tutorial eles dao-nos um pequeno programa para ver como funciona:

    #include <stdio.h>

    int main() /* Most important part of the program!
    */
    {
    int age; /* Need a variable... */

    printf( "Please enter your age" ); /* Asks for age */
    scanf( "%d", &age ); /* The input is put in age */
    if ( age < 100 ) { /* If the age is less than 100 */
    printf ("You are pretty young!\n" ); /* Just to show you it works... */
    }
    else if ( age == 100 ) { /* I use else just to show an example */
    printf( "You are old\n" );
    }
    else {
    printf( "You are really old\n" ); /* Executed if no other statement is
    */
    }
    return 0;
    }

    a duvida é: quando executo isto aparece a tal janela preta a dizer «please enter your age», aí eu ponho um numero qualquer e carrego enter, certo? é isso que faço e a janela fecha-se, desaparece, porquê? que estou a fazer mal?

    Ajudem-me tou a começar a gostar disto!
     
  2. Tsunamy_boy

    Tsunamy_boy Banido

    falta-t fazer uma pausa no ecra... para ele nao ir abaixo...
    nao me lembro do comando mas no final do codigo antes de "return 0" mete "scanf( "%d", &age );" vai ler a variavel novamente mas assim ja ves o resultado...
    procura "pause" ou readkey no google ou assim

    experimenta isto antes do return 0:
    getch();

    e nao faças "int main()" faz "void main(void) " e tira o "return 0"
    o return serve para devolver um valor ao procedimento, no caso do procedimento principal nao é necessario, fora exepções
     
    Última edição pelo moderador: 13 de Março de 2008
  3. phoenix127

    phoenix127 Power Member

    RESULTOU!!!!!!!!!! :002:

    outra coisa: so posso inseriri a idade uma vez so certo? é porque ele vai abaixo quando meto segunda vez....
     
  4. Tsunamy_boy

    Tsunamy_boy Banido

    só pois só a pedes uma vx no codigo:
    scanf( "%d", &age );
    caso queiras varias fezes faz um ciclo "for" ou um "while"
    sugiro "for"
     
  5. phoenix127

    phoenix127 Power Member

    n funciona assim....
     
  6. Tsunamy_boy

    Tsunamy_boy Banido

    da-me o teu codigo actual
     
  7. phoenix127

    phoenix127 Power Member

    pois isso ainda não sei, é a próxima lição.

    :lol:


    #include <stdio.h>
    int main() /* Most important part of the program!
    */
    {
    int age; /* Need a variable... */
    printf( "Please enter your age" ); /* Asks for age */
    scanf( "%d", &age ); /* The input is put in age */
    if ( age < 100 ) { /* If the age is less than 100 */
    printf ("You are pretty young!\n" ); /* Just to show you it works... */
    }
    else if ( age == 100 ) { /* I use else just to show an example */
    printf( "You are old\n" );
    }
    else {
    printf( "You are really old\n" ); /* Executed if no other statement is
    */
    }
    scanf("%d", &age);
    return 0;
    }

    assim vai la
     
  8. Tsunamy_boy

    Tsunamy_boy Banido

    tira o "scanf("%d", &age);" e poe
    "getch();"
    Funka?
     
  9. phoenix127

    phoenix127 Power Member

    diz que «getch() is undeclared (first use this function)»
     
  10. Tsunamy_boy

    Tsunamy_boy Banido

    na primeira linha poe tambem:
    #include <conio.h>
    e usa o getch() na mesma
    ve se da
     
  11. phoenix127

    phoenix127 Power Member

    deu! mas depois de carregar enter se tento escrever mais alguma coisa vai abaixo
    axo k ficou melhor com a 1ª solução
     
    Última edição: 13 de Março de 2008
  12. Tsunamy_boy

    Tsunamy_boy Banido

    sim, este comando com está faz uma espera de tecla.
    queres fazer aparecer varias vezes a pergunta?

    nao uses a primeira solução estas a guardar valores numa variavel desnexexariamente se mais tarde precisares da variavel ela axumiu outros valores
     
    Última edição pelo moderador: 13 de Março de 2008
  13. phoenix127

    phoenix127 Power Member

    deixa estar. muito obrigado por tudo, vou seguir as lições.
    OBRIGADÃO!!
     
  14. Tsunamy_boy

    Tsunamy_boy Banido

    de nada fica bem...
    ja agora codeproject.com ajuda... tens lá varias linguagens de programação...
    cumps
     
  15. phoenix127

    phoenix127 Power Member

    diz-me so uma coisa, tenho de manter #include <stdio.h> não é?
     
  16. Baderous

    Baderous Banido

    Errado. Segundo as normas ANSI, a função main pode ter 2 cabeçalhos:

    Código:
    int main()
    ou
    Código:
    int main(int argc,char *argv[])
    A diferença que existe na 2ª é que esta recebe parâmetros através da linha de comandos.

    http://www.digilife.be/quickreferences/QRC/C%20Reference%20Card%20(ANSI)%202.2.pdf
    http://members.aol.com/wantondeb/#MAIN

    Se quiseres que o programa não pare, podes experimentar corrê-lo a partir da linha de comandos ou então colocar um getchar() (e não um getch(), não é preciso sobrecarregar o compilador com processamento de bibliotecas - conio.h - desnecessariamente) antes do return 0 (o qual deve estar presente!).
     
  17. Tsunamy_boy

    Tsunamy_boy Banido

    sim, sempre! pois vais precisar de vaios procedimentos que essa "biblioteca" tem
     
  18. Baderous

    Baderous Banido

    Biblioteca
     
  19. Tsunamy_boy

    Tsunamy_boy Banido


    o int main();
    nao vai dizer que o procedimento vai devolver valores do tipo int? então para que usar isto s ele não vai receber nada daki

    bem tenho k ir embora...
    eu usava o void main();
    mas cada um usa conforme o k precisar, e nao é incorrecto usar int main();
    bem usem ao vosso gosto eu axo desnexexario...
     
    Última edição pelo moderador: 13 de Março de 2008
  20. Baderous

    Baderous Banido

    1 - Procedimentos é em Pascal. Aqui temos funções.
    2 - A função vai indicar ao sistema operativo se concluiu a tarefa com sucesso (valor do return), esse valor pode ser utilizado posteriormente pelo SO.

    Não é o que tu achas necessário, é seguir as normas para que depois não haja problemas na execução dos programas!
     

Partilhar esta Página