Duvida (principiante)

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!
 
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:
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"

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
 
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:
sim, este comando com está faz uma espera de tecla.
queres fazer aparecer varias vezes a pergunta?

deu! mas depois de carregar enter se tento escrever mais alguma coisa vai abaixo
axo k ficou melhor com a 1ª solução
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:
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

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


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

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!
 
Back
Topo