Ir ao conteúdo
  • Cadastre-se

C <Exercicio de Função Iniciante>


Gabbie1

Posts recomendados

Como eu posso fazer esse exercício da melhor forma?

 

/* Faça um programa contendo uma função para verificar se o dia é válido (está no intervalo
entre 1 e 31) e se o mês está entre 1 e 12. Caso esteja incorreto, ler nova data. */

#include <stdio.h>

int data (int d, int m){ 


O máximo que eu consegui até agora foi isso, mas quando o número dá errado ele não entra no if de novo. 

 

if (d >= 1 && d <= 31 && m >= 1 && m <= 12)
printf ("Dia valido!"); 

else 
    printf ("Entre com um dia valido: ");
    scanf ("%d", &d);

    printf ("Entre com um mes valido: ");
    scanf ("%d", &m);
    
}


int main (){
    int dia, mes; 
    
    printf ("Entre com o dia: ");
    scanf ("%d", &dia);

    printf ("Entre com o mes: ");
    scanf ("%d", &mes); 
    
    data(dia, mes);
}

 

Link para o comentário
Compartilhar em outros sites

9 minutos atrás, Gabbie1 disse:

Eu tentei usar um do while no main mas como eu posso dizer pro main que o numero é invalido?

Da mesma forma que você usou o comando if. O while também é um comando condicional, tem um if escondido nele. Você pode fazer por exemplo 'do [pergunta dia e mês] while [dia e mês forem inválidos]'. No seu if você testou se o dia e mês eram válidos, basta testar a condição contrária (dia menor que 1 ou maior que 31, mês menor que 1 ou maior que 12). Atente que o operador '&&' significa E, ambas condições devem ser cumpridas. Nesse caso o operador que você precisa usar é '||', OU, se qualquer uma das condições não for cumprida é satisfeito.

  • Amei 1
Link para o comentário
Compartilhar em outros sites

@Shaman93 Entendi! Obrigada. 

Eu tentei dessa forma, inverti os operadores etc, mas achei que minha lógica estivesse errada e tivesse alguma forma trazer essa informação da função. 

Fico feliz em saber que minha lógica não estava totalmente errada, tinha só esquecido do || e metido && em tudo no while.  

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

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!