#  > Desenvolvimento >  > Linguagens de Programação >  >  compilação no Dev C++

## edimilsondoacre

Olá pessoal,
eu comecei a ler e testar uma apostila de programação em C a dois dias. Quero e preciso me aprofundar em programação...é uma coisa que gosto de fazer é entender coisas complexas...

Eu estou usando o Dev C++, mas não consigo executar os códigos...
quando termino de digitar o código, salvo, compilo, corrijo os erros. Mas quando eu vou executar, só aparece uma tela do dos que pede para eu inserir os valores das variáveis e quando clico enter não exibe o resultado. Preciso de ajuda. Alguém pode me ajudar?

Aparece a janela pedindo para inserir o número de dias, mas não exibe o resultado em anos, a janela fecha rapidim.

Aqui vai o código, não olhem para os comentários, porque sou eu mesmo que estou escrevendo, a apostila não dá estes detalhes. 

/*Programa para calcular idade*/
/*Edimilson Araujo - Desenvolvedor*/
/*este é meu segundo programa em C*/

#include <stdio.h> /* inclusao do arquivo de cabeçalho*/

int main () /*Definimos a funcao main, que será chamada 
quando o programa for ser executado*/

{ /*abertura de chaves, o conteudo da funcaoo main esta delimitado 
por chaves*/

int Dias; /*Declarei a variavel dias com o tipo int*/

float Anos; /*Declarei a variavel anos com o tipo float*/

printf ("Entre com o numero de dias:");
 /* Chamada a funcao printf que coloca uma mensagem na tela do monitor 
para entrada de dados que sera armazenada na variavel dias*/

scanf ("%d, &Dias");
/* A funcao scanf captura a digitacao do usuario.
A codigo de controle %d informa que vai ler um dado do tipo inteiro.
O paramentro & diz que o dado sera armazenado na variavel dias.
A virgula sera necessaria porque temos mais de um paramentro para
a funcao scanf, neste caso %d e & estao separados por virgula*/

Anos=Dias/365.25;
/*Conversao de dias em anos*/
printf ("\n\n%d dias equivalem a %f anos; \n, Dias, Anos");

return (0);
}

----------


## Hyagosallet

#include<stdio.h> 

int main(){ 

int Dias; 
float Anos; 


while (1 > 0) {
printf("Entre com o numero de dias:");
scanf("%d", &Dias);

Anos = Dias/365.25;

printf("%d dias equivalem a %f anos \n", Dias, Anos);
}

}


Tem que formular melhor o algoritmo eu nem li o código fiza na correria mas ta funcionando agora...

----------


## edimilsondoacre

Muito obrigado Hyagosallet
Agora está funcionando normalmente. Cara é incrível isso: eu estou usando uma apostila do curso de Sistemas de Informação e em todos os exemplos não se usa as funções de controle de fluxo. Só vão aparecer no capítulo 6 aí começa a aparecer condições if, for while.

Neste caso o while (1 > 0) resolveu meu problema...

Valeu pela ajuda, quando eu estiver mais avançado vou responder as perguntas dos tópicos também para a galera que está iniciando.

valew

----------


## edimilsondoacre

Fiz um novo código, é só colocar uma expressão verdadeira. Ficou legal. Também funcionou
A variável foi iniciada e na condição (while) eu já usei os nomes das variáveis. Veja:
Agora estou convertendo anos em dias, é mais usual.

#include<stdio.h>

int main(){

float Dias = 5;
int Anos = 1;


while (Dias > Anos) {
printf("Entre com o numero de anos:");
scanf("%d", &Anos);

Dias = Anos*365.25;

printf("%d anos equivalem a %f dias \n", Anos, Dias);
}

}

----------


## allisonvoll

No seu primeiro script, (com excessão dos erros de sintaxe) ele iria executar normalmente, porém quando a execução termina (se você executou ele apartir de uma interface gráfica) o prompt de comando fecha, para isso não acontecer basta você "travar" o console, por exemplo, esperar o input de uma tecla:

Para windows, utilize o getch da lib conio (header: conio.h).

Para linux, você pode utilizar tanto o "getchar" como o "pause", este último precisa receber um sinal para destravar, ou seja, você pode finalizar com o CTRL+C (SIGTERM).

Não é aconselhavel você utilizar uma estrutura de repetição para este caso (ao menos que você realmente precise).

Uma dica, sei que você está iniciando mas os comentários nunca devem falar o óbvio, senão fica cheio de informação que não precisa, use eles para dizer o que você pretende fazer, a sintaxe deixa por conta do programador.

A[]'s

----------


## Magnun

Eu geralmente usava (no windows) a instrução system("pause").

----------


## osmano807

Não é bom utilizar system("pause"), isto é POG (Programação orientada a gambiarra)

[Tutorial] system("pause") e fflush(stdin) - iMasters Fóruns

Things to Avoid in C/C++ -- system("pause"), Part 4 - GIDNetwork

----------


## edimilsondoacre

valew,
obrigado pelas dicas.
Consegui o C: total e completo, estou lendo, tenho pouco tempo, mas estou tentando

----------


## edimilsondoacre

cara esse system ("pause") não funcionou, não compila de forma alguma rsrsrsrsrsrs

----------


## osmano807

> cara esse system ("pause") não funcionou, não compila de forma alguma rsrsrsrsrsrs


Olha o POG! Nem todo sistema suporta isto!
Agora: 


```
void esperar()
{
printf("Pressione enter para continuar");
scanf("%*c");
}
```

 No seu código


```
int main()
{
 
/* todo o seu codigo antes disto */
esperar();
return(0);
}
```

----------


## Magnun

Hehehe.. POG é f**a!! me sacaneou hein osmano! Na minha época de C eu era noob mesmo!

----------

