Jump to content
Son

O code completo

Recommended Posts

Son

#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);

}

Share this post


Link to post
Share on other sites
deathseeker25

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

Share this post


Link to post
Share on other sites
deathseeker25
e porque a variavel anos ser float ?

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

Share this post


Link to post
Share on other sites
Gurzi

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

Share this post


Link to post
Share on other sites
Gurzi

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.

Share this post


Link to post
Share on other sites
deathseeker25
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

Share this post


Link to post
Share on other sites
Gurzi

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

Share this post


Link to post
Share on other sites
vbmaster

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

Share this post


Link to post
Share on other sites
QuickFire

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

Share this post


Link to post
Share on other sites
Gurzi

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

Share this post


Link to post
Share on other sites
Gurzi

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.

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.