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

killer_joe

[Ajuda] Validar data

4 mensagens neste tópico

Estou a fazer um programa em que preciso de validar a data e se é maior de idade.

Quando faz return=0; ele volta a repetir a pedir o dia, mes e ano e quando faz return=1; aceita e grava. mas tou com problemas, ele por vezes não me aceita uma data possivel do género, 5.6.1989.

O que poderá ser?

Este é o codigo:

//Função VALIDAR DIA------------------------------------------------------------
int validar_Dia(int *dia, int *mes, int *ano)  
{ 
    if(*ano>1989)
    {
    printf("\nIdade Insuficiente\n");
    return 0;
    }
    else
    if(*mes==2 && *dia>29 || *mes==4 || *mes==6 || *mes==9 || *mes==11 && *dia==31)
    {
    printf("\nData Invalida\n");
    return 0;
    }
    else
    return 1;
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Faltam os parênteses. o "||" tem precedência sobre o "&&".

*mes==2 && *dia>29 || (*mes==4 || *mes==6 || *mes==9 || *mes==11) && *dia==31

Sugestão: Tira os ponteiros da declaração da função (para não teres de andar com os asteriscos) e declara o "1989" como uma constante.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Faltam os parênteses. o "||" tem precedência sobre o "&&".

Ao contrário, o && é que tem precedência sobre o ||, senão não eram precisos parêntesis.

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