Pulse 0 Denunciar post Postado Março 27, 2015 Escreva um programa que solicita ao usuário duas datas (dia, mês, ano), onde a primeira data é o dia atual e a segunda é a data de vencimento de suas contas, em seguida o seu programa deve imprimir se a conta em questão “esta atrasada”, “nao esta atrasada” ou “vence neste dia”. Assuma que o usuário informa duas datas válidas. #include <stdio.h> int main () { int datatual=0, datavenc=0; printf("Digite a data atual no formato DDMMAAA e sem barras\n"); scanf("%i", &datatual); printf("Digite a data de vencimento no formato DDMMAAA e sem barras\n"); scanf("%i", &datavenc); if (datatual>datavenc) { printf("esta atrasado!\n"); } else if (datavenc>datatual) { printf("nao esta atrasado!\n"); } else { printf("vence neste dia!\n"); } } O programa não funciona pra datas iniciadas em 0. O que devo fazer? Compartilhar este post Link para o post Compartilhar em outros sites
Felipe-Petrópolis 11 Denunciar post Postado Março 27, 2015 Olá! Olha Pulse testei o código aqui e funcionou perfeitamente em todas as combinações de datas que pude testar, mostrando todas as mensagens corretamente ! ! ! Tente ser mais especifico com relação as datas que você esta tendo dificuldades. Ubuntu 14.04 GCC 4.4.8 Codeblocks 13.12 Espero ter Ajudado! Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Março 27, 2015 Detalhes do scanf nos quais quase ninguém deve prestar atenção: %d -> número na base decimal%i -> número na base b dependendo do "prefixo".Ou seja, se você está usando %i e informa uma data do tipo 06, ela será interpretada como octal e não decimal. Isso pode gerar erros quando você usar, por exemplo, 09, já que 9 é um dígito inválido na base octal. Compartilhar este post Link para o post Compartilhar em outros sites
Felipe-Petrópolis 11 Denunciar post Postado Março 27, 2015 Olá! Oi Pulse e _isis_ realmente eu deixei passar o %i no código acima, além do mais a única combinação que não testei aqui e que quando testei e não funcionou foi a de 09, obrigado pelas observações, vou tentar prestar mais atenção no futuro além de que vou levar estas observações para o resto de meus estudos! Obrigado e ate a próxima ! ! ! Compartilhar este post Link para o post Compartilhar em outros sites
Pulse 0 Denunciar post Postado Março 28, 2015 Muito obrigado, Isis e Felipe! Realmente não entendia muito a diferença entre %d e %i, agora está mais claro. Compartilhar este post Link para o post Compartilhar em outros sites