Ir ao conteúdo

Posts recomendados

Postado

Galera, bom dia!

 

Estou com a demanda para criar um programa em C++, onde escrevendo um valor numérico, o programa me responda em dias, ou horas, ou minutos, ou segudos.

EX: Digitei 86400 equivalaente a um dia em segundos

Deveria retornar :

Dias 1 horas 0 minutos 0 segundos 0

Porém quando digito o valor acima 86400, está me retornando:

dias 1 horas 24 minutos 0 segundos 0

 

 

Por favor poderiam me auxiliar com esse erro.

 

Segue o programa criado:

<>

#include <stdio.h>
#include<locale.h>

int main()

    setlocale(LC_ALL,"portuguese");
    int horas,sec,min,dia;
    
    printf("Digite o valor....");
    scanf("%d",&sec);
       
    horas = sec/3600;
    min = (sec%3600)/60;
    sec =  sec%60;
    dia = horas/24;
      
    
      
    printf("Sao %d dia %d horas %d minutos e %d segundos",dia,horas,min,sec);
    
    
    system("PAUSE");
    
}

>

Postado

Resolve se atribuir o resto da primeira conversão antes da segunda.

 

sec= sec%3600

 

[Edit]

Problema é que horas é o modulo de dias.

dia= horas/24

horas= horas%24

 

  • Curtir 1
Postado

@Rafael Ruy

45 minutos atrás, Rafael Ruy disse:

quando digito o valor acima 86400, está me retornando:

dias 1 horas 24 minutos 0 segundos 0

Você precisa de mais memória pra representar esse número, o tipo int é de normalmente 4 bytes.

Talvez unsigned long seja mais que o suficiente.

 

A lógica que você estabeleceu é essa:

horas = sec/3600;
min = (sec%3600)/60;
sec =  sec%60;
dia = horas/24;

Você só converte para dias o valor das horas, talvez algo assim já funcione:

unsigned long dias, horas, mins, secs;

dias = secs/86400;
horas = (secs/3600)-(dias*24);
mins = (secs%3600)/60;
secs =  secs%60;

image.png.b22b46fb67be364239efc648c3ede588.png

 

Aliás, isso é C, não C++.

  • Obrigado 1
  • Amei 1

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!