Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #57 da revista programar. Faz já o download aqui!

killer_joe

Validar data

Mensagens Recomendadas

killer_joe    0
killer_joe

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

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Ferreira    0
Ferreira

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.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
TheDark    0
TheDark

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.

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


×

Aviso Sobre Cookies

Ao usar este site você aceita a nossa Política de Privacidade