Ir para conteúdo
Fórum Script Brasil
  • 0

Quantos anos você tem [ C ]


BrunoZavanin

Pergunta

Olá, sou estudante de Eng de Software do 1 ano e estou participando de uma maratona, na mesma caiu uma questão onde eu tinha que verificar a data de nascimento do cliente, exemplo:

Entrada

01/01/2007 //Data atual

10/02/2007 //Data de Nascimento

Saída

Data de nascimento errada

Entrada

09/06/2007 //Data Atual

28/02/1871 //Data Nascimento Errada Pois o cliente teria mais de 130 anos

Saída

Verificar Data de Nascimento

Entrada

12/11/2007

01/01/1984

Saída

23

Entrada

28/02/2005

29/02/2004

Saída

0

Meu código em C

#include <stdio.h>
#include <stdlib.h>
 int main (){
  int dia, mes, ano, i, n;
  int dia_n, mes_n, ano_n;
  int diafinal, mesfinal, anofinal;
  
  scanf("%d", &n);
  
  for (i=1; i<=n; i++){
  printf("\n");
  scanf("%d/%d/%d", &dia, &mes, &ano);
  scanf("%d/%d/%d", &dia_n, &mes_n, &ano_n);
  
  diafinal = dia-dia_n;
  mesfinal = mes-mes_n;
  anofinal = ano-ano_n;
  
  if((diafinal<0)&&(diafinal>31)&&(mesfinal<0)&&(mesfinal>12)&&(anofinal<0)){
  printf("Data Nascimento Errada\n");
}
else if (anofinal>=131){
printf("verificar Data de Nascimento");
}
else if ((diafinal>=0)&&(diafinal<=31)&&(mesfinal>=0)&&(mesfinal<=12)&&(anofinal>0)&&(anofinal<130)){
printf("%d", anofinal);
}
else if ((diafinal>=0)&&(diafinal<=31)&&(mesfinal>=0)&&(mesfinal<=12)&&(anofinal==0)){
printf("%d", anofinal);
}
  
}
 }
Editado por BrunoZavanin
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0
#include <stdio.h>
#include <stdlib.h>


int main(int argc, char** argv)
{
	int dia_nasc;
	int mes_nasc;
	int ano_nasc;
	
	int dia_atual;
	int mes_atual;
	int ano_atual;
	

	int data_final;
	int data1;

	
	
    printf("\nDigite Sua Data de Nasc. no Formato dia/mes/ano: \n\n");
	scanf("%d/%d/%d", &dia_nasc, &mes_nasc, &ano_nasc);
	
	printf("\nDigite O Ano Atual no Formato Dia/mes/ano: \n\n");
	scanf("%d/%d/%d", &dia_atual, &mes_atual, &ano_atual);
	
		
				
	while(ano_atual < ano_nasc){
		printf("\nDatas Invalidas!!! \nAno atual não pode ser menor que o ano de nascimento.\n\n");
			exit(1);
			if ( ano_atual < 0 || ano_nasc < 0){
			printf("\nData Invalida!!!\nO ano não pode ser igual a 0\n\n");
			exit(1);
		}
		
		if(mes_nasc > 12 || mes_atual > 12 || mes_nasc < 1 || mes_atual < 0){
			printf("\nData invalida!!!\nO mes não pode ser igual a 0 ou maior que 12 .\n\n");
			exit(1);
		}if(dia_nasc < 1 || dia_atual < 1 || dia_nasc > 30 || dia_atual > 30){
			printf("\nData invalida!!!\nO dia não pode ser menor que 0\n Ou Maior que 30.\n\n");
			exit(1);				
		}
	        
	}
	
	data_final = ano_atual - ano_nasc;
			if(data_final <= 0){
				data1 = mes_nasc * 30;
				
            printf("\nVoce nasceu %d/%d/%d\n\n", dia_nasc, mes_nasc, ano_nasc);
			printf("\tVoce tem %d Dias de nascimento\n\n", data1);
			}
			if(data_final > 80){
				data1 = mes_nasc * 30;
				
            printf("Idade fora da media segundo as Estatisticas,\nFavor informar o ano de nascimento acime de 1935.\n\n");
			exit(0);
			}
			printf("Voce nasceu %d/%d/%d\n\n", dia_nasc, mes_nasc, ano_nasc);
			printf("\tVoce tem %d Anos\n\n", data_final);
	return 0;
	} 

Não adicionei uma verificação aos anos bissexto e meses de 28 dias.

Não usei funções para não atrapalhar o seu raciocínio caso seu professor ainda não explicou funções, mas lembre-se fazer sempre por meio de funções torna o código mais legível.

Editado por Barao
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...