• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

Son

O code completo

15 mensagens neste tópico

#include <stdio.h>

int main ()

{

int Dias; /* Declaraçao das variaveis*/

float Anos;

printf ("Entre com o numero de dias:"); //Entradas de dados

scanf ("%d",&Dias);

Anos=Dias/365.25 /* Conversao Dias->Anos */

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

return(0);

}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas,

Em primeiro lugar Son não precisas de abrir um tópico novo cada vez que queres responder a um tópico. Basta entrares no tópico que abriste e carregar Post Reply...Assim evita muito SPAM e organiza as coisas como deve ser....

Em segundo lugar, começa a utilizar as tags

 que existem para te ajudar a postar mensagens no forum.

Para resolveres o teu problema tens de colocar um ponto e vírgula onde diz "Anos=Dias/356.25;" no final da frase.

Acho que é só isso e vê se segues as minhas dicas.

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
e porque a variavel anos ser float ?

Isso foi opção do programador...podia muito bem ser integer... ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

preferia um long int

foi opcção , mas podemos transmitir que ficaria melhor int porque não tou a ver anos com parte decimal do género 1,23 anos

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

no teu code tambem nao percebo para que é o return(0);

ah e peço desculpa pela critica da atribuiçao de %f a anos, nao tinha visto esta linha de código :

Anos=Dias/365.25

fica a nota.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
se return (0); sai da funçao o k fax um return (1);

A instrução return permite terminar a execução de uma função e voltar ao programa que a invocou.

Por exemplo se escreveres:

#include <stdio.h>

main()
{
printf("Ola eu sou o deathseeker25!\n");
return;
printf("Ola de novo!");
}

Para as funções main o resultado é convencional: 0(zero) significa que o programa terminou normalmente; qualquer outro valor, seja 1 ou 100 ou -100, representa uma situação anormal ou errónea.

Já que comecei deixa-me continuar:

return expressão é a forma de representação da instrução return como já aprendeste.

O efeito desta instrução é avaliar a expressão e após isso terminar o cálculo relativo á chamada da função onde a instrução ocorre; o valor da função será precisamente o valor resultante da avaliação da expressão.

Acho que assim já percebes tudo.

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

construi aquele código de outra forma, só que existe um erro que nao consigo ajustar

#include <stdio.h>
#include <stdlib.h>
main()
{
     float anos;
     int result;
     int dias;

     printf("Introduza um numero de dias");
     scanf("%d",&dias);
     anos=dias/365;
     result=(anos-(int)anos)*365;
     printf("\n\n %d dias consiste em %d anos e %d dias\n\n",dias,(int)anos,
     result);
     system("PAUSE");
}

o erro encontra-se em result=(anos-(int)anos)*365;

ou seja por ex. 370 / 365 = 1.01369863013698

depois menos a parte inteira(que será os anos) vezes 365

que dá 5

ou seja 1 ano e 5 dias.. mas no code dá 1 ano e 0 dias ... :D

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Opah façam assim:

(é c++ mas entende-se bem i think)

"#include <iostream.h>
using namespace std;
void main () {
int dias;
cout << "Insira o numero de dias" << endl;
cin >> dias;
int anos = (dias / 365);
int diasamais = dias - (anos * 365);
cout << anos << " e " << diasamais;
}"

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Boas :D aqui vai o n000b :)

#include <stdio.h>

main()
{
int dias;
float anos;

printf("Digite o numero de dias a converter para anos: ");
scanf("%d",&dias);
anos=dias/365.25;
printf("%d dias sao %f anos!\n",dias,anos);
}

este é parecido ao teu :D

#include <stdio.h>

main ()
{
  int dias;
  printf("Insira o numero de dias: "); scanf("%d",&dias);
  int anos = (dias / 365);
  int diasamais = dias - (anos * 365);
  printf("%d anos e %d dias",anos,diasamais);
}

este é uma conversão do code do vbmaster :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

obg ... mas expliquem-me porque é que o meu code nao funciona... qual é o problema ? eu fiz o Anos-(int)Anos.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bem já consegui perceber...


#include <stdio.h>
#include <stdlib.h>
main()
{
     double anos;
     int result;
     int dias;

     printf("Introduza um numero de dias");
     scanf("%d",&dias);
     anos=dias/365.0;
     result=(anos-(int)anos)*365;
     printf("\n\n %d dias consiste em %d anos e %d dias\n\n",dias,(int)anos,
     result);
     system("PAUSE");
} 

tem que na variavel Anos dividir por 365.0 se nao ele pensa que sao os dois inteiros e atribui um valor inteiro(estupido nao é?) e tem que se atribuir double a Anos para funcionar.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora