Ir ao conteúdo

Posts recomendados

Postado

Gostaria da ajuda dos colegas para terminar meu código para calcular a idade em anos meses e dias

#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main()
 {
    int dia1, dia2, mes1, mes2, ano1, ano2, ida1, ida2, ida3;
    printf ("Digite o dia do nascimento: ");
    scanf ("%d", &dia1);
    printf ("Digite o mes de nascimento: ");
    scanf ("%d", &mes1);
    printf ("Digite o ano de nascimento: ");
    scanf ("%d", &ano1);
    printf ("Digite o dia atual: ");
    scanf ("%d", &dia2);
    printf ("Digite o mes atual: ");
    scanf ("%d", &mes2);
    printf ("Digite o ano atual: ");
    scanf ("%d", &ano2);
    ida1 = ano2 - ano1;
    ida2 = ida1 * 365;
    ida3 = ida1 * 12;
    printf (" voce nasceu em: %d/%d/%d\n", dia1,mes1,ano1);
    printf (" voce tem: %d anos\n", ida2);
    printf (" sua idade em meses e: %d\n", ida3);
    printf (" sua idade em anos e: %d\n", ida1);
    system("PAUSE");
    return 0;

 

o código não está retornando o resultado desejado eu queria que ele escrevesse (voce tem 39 anos 4 meses e 25 dias) não sei como fazer esse cálculo e como colocar na função printf sem ter que dividir em 3 comandos.

Postado
printf (" voce tem: %d anos\n", ida2);

não seria

printf (" voce tem: %d anos\n", ida1);

?

 

pra escrever tudo junto basta fazer igual você fez acima.

 

Exemplo :

printf (" voce tem %d dia(s) , %d mes(es),%d ano(s)",ida1,ida3,ida2);

mais ou menos assim, to enferrujado !

Postado

agora deu certo

 

só preciso descobrir uma maneira de calcular a idade correta porque do jeito que ta ele ta calculando a mesma idade em ano meses e dias

tipo tem 40 anos ai ta multiplicando os 40 em meses e os mesmos 40 em dias

 

eu queria que ele fizesse era o tanto de dias que falta para completar 40 tipo 39 anos 3 meses e 08 dias

Postado

fiz assim e melhorou mais ainda não está correto

 

    ida1 = ano2 - ano1;
    if (ida1<0) {ida1=ida1*(-1);}
    ida2 = mes2 - mes1;
    if (ida2<0) {ida2=ida2*(-1);}
    ida3 = dia2 - dia1;
    if (ida3<0) {ida3=ida3*(-1);}

adicionado 1 minuto depois

@giu_d editaram o post, você poderia me enviar por email a correção

[email protected]

Postado
/* programa ANSI C ---relata o tempo vivido com base em duas datas        *
 * enconding: window-1252, compiler: gcc version 5.1.0 (tdm64-1)          *
 * editor: codelite 12.0.3 - 2018, file: draft.c                          *
 * ver: 1.0.1                                                             */
 
#include <stdio.h>
int main(void)
{
  int hdia, ndia;
  int hmes, nmes;
  int hano, nano;
  int dia, mes, ano;
  int diferenca;
  
  hdia = 0;  /* dia de hoje                                               */ 
  ndia = 0;  /* dia de nascimento                                         */
  hmes = 0;  /* mes de hoje                                               */ 
  nmes = 0;  /* mes de nascimento                                         */
  hano = 0;  /* ano de hoje                                               */
  nano = 0;  /* ano de nascimento                                         */

  
/*  ENTRADA DE DADOS                                                      */ 
  printf("%s","*** Calculadora de Tempo de Vida ANSI C\n");
  printf("%s","Por favor informe a data de ""hoje?\n");
  printf("%s","[dd mm aaaa]: ");
  scanf(" %d%d%d", &hdia, &hmes, &hano);
  printf("              %2d/%2d/%3d\n\n", hdia, hmes, hano);
  
  printf("%s","Por favor informe a data de ""nascimento?\n");
  printf("%s","[dd mm aaaa]: ");
  scanf(" %d%d%d", &ndia, &nmes, &nano);
  printf("              %2d/%2d/%3d\n\n", ndia, nmes, nano);

/* PROCESSAMENTO DE  DADOS                                                */
  diferenca =   365*hano + 30*hmes + hdia
              - 365*nano - 30*nmes - ndia;
  
  ano = diferenca/365;
  diferenca = diferenca%365;
  
  mes = diferenca/30;
  diferenca = diferenca%30;
  
  dia = diferenca;
  
/* RESULTADO                                                              */
  printf("%s %d %s %d %s %d %s", /* ---são as máscaras de saída do printf */
          "Tem de vida:", ano, "ano(s)", mes, "mes(es)", dia, "dia(s).\n");
  return 0;
}

ⒶⓃⓈⒾ Ⓒ

Aguardo por dúvidas e sugestões

 

  • Curtir 1
  • Membro VIP
Postado

@hermesjunior, segue:

 

Sobre:

Em 05/07/2018 às 11:00, AnsiC disse:

  printf("%s %d %s %d %s %d %s", /* ---são as máscaras de saída do printf */
          "Tem de vida:", ano, "ano(s)", mes, "mes(es)", dia, "dia(s).\n");

 

É o mesmo que:

printf("Tem de vida: %d ano(s), %d mes(es), %d dia(s).\n",ano,mes,dia);

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!