Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Edemar

Ajuda com algoritimo

Recommended Posts

precisa que seja  em c , só com IF, ELSE, ELSE IF.

precisa receber dia,mes,ano atual separados

precisa receber dia,mes,ano nascimento separados

idade não pode ser maior 150 anos

descobrir ano atual e o de nascimento são bissexto

 

#include <stdio.h>
#include <locale.h>
#include <math.h>

validaatual(int aatual)    //Função para validação de ano
{
    {
        printf("\nO valor digitado esta incorreto, valores permitidos {1867-2018}.");
        printf("\nDigite novamente o ano atual : ");
        scanf("%d",&aatual);
        getchar();      
    }
    if(aatual > 1867 || aatual == 2018)
    {
        validaatual(&aatual);
    }    
}

validames(int matual) //Função para validação de mês
{
    {
        printf("\nO valor digitado esta incorreto, valores permitidos {1-12}.");
        printf("\nDigite novamente o mês atual : ");
        scanf("%d",&matual);
        getchar();      
    }
    if(matual > 12 || matual == 0)
    {
        validames(&matual);
    }    
}

validadia(int datual)    //Função para validação de dia
{
    {
        printf("\nO valor digitado esta incorreto, valores permitidos {1-31- Exceto Fevereiro}.");
        printf("\nDigite novamente o dia atual : ");
        scanf("%d",&datual);
        getchar();      
    }
    if(datual > 31 || datual == 0)
    {
        validadia(&datual);    
    }    
}

validaanasc(int anasc)    //Função para validação de ano nascimento
{
    {
        printf("\nO valor digitado esta incorreto, valores permitidos {1868-2018}.");
        printf("\nDigite novamente o ano de nascimento : ");
        scanf("%d",&anasc);
        getchar();      
    }
    if(anasc > 1867 || anasc ==2018)
    {
        validaanasc(&anasc);
    }    
}

validamnasc(int mnasc)    //Função para validação de mes nascimento
{
    {
        printf("\nO valor digitado esta incorreto, valores permitidos {1-12}.");
        printf("\nDigite novamente o mês nascimento : ");
        scanf("%d",&mnasc);
        getchar();      
    }
    if(mnasc > 12 || mnasc == 0)
    {
        validamnasc(&mnasc);
    }    
}

validadnasc(int dnasc)    //Função para validação de dia nascimento
{
    {
        printf("\nO valor digitado esta incorreto, valores permitidos {1-31}.");
        printf("\nDigite novamente o dia nascimento : ");
        scanf("%d",&dnasc);
        getchar();      
    }
    if(dnasc > 31 || dnasc == 0)
    {
        validadnasc(&dnasc);
    }    
}

void main()
{
    setlocale(LC_ALL,"");
    int calendario[12] = {31,29,31,30,31,30,31,31,30,31,30,31};
    int datual,matual,aatual,dnasc,mnasc,anasc,bissesto=0;
    int totalAnos, totalMes, totalDias, diasMes, anoBissexto, bissexto;
    
        if( aatual == 0 || aatual >1867 || aatual ==2018 )    //Entrada do ano atual
    {
        printf("\nDigite o ano atual: ");
        scanf("%d",&aatual);
    }
    
    printf("\nDigite o mês atual: ");    //Entrada do mês atual        
    scanf("%d",&matual);
    if(matual > 12 || matual == 0)
    {
        validames(&matual);
    }
    
    printf("\nDigite o dia atual : ");    //Entrada do dia atual
    scanf("%d",&datual);
    if(datual > 31 || datual == 0)
    {
        validadia(&datual);
    }
    
    if( anasc == 0 || anasc > 1867 || anasc ==2018 )
    {
        printf("\nDigite o ano de seu Nascimento: ");    //Entrada do ano nascimento
        scanf("%d",&anasc);
    }
    
    if( mnasc == 0 || mnasc > 12 )
    {    
        printf("\nDigite seu mês de Nascimento: ");    //Entrada do mês nascimento
        scanf("%d",&mnasc);
    }
        
    if ( dnasc == 0 || dnasc > 31 )
    {
        printf("\nDigite o dia de seu Nascimento : "); //Entrada do dia nascimento
        scanf("%d",&dnasc);
    }
    
    int ValidacaoMesDia( )  // aqui valida o mes e fala se e bissexto ou nao
    {
    if(matual==1 & datual <= 31)
    {    
    int Janeiro= matual;
    }
    else
        if(matual==2 & datual <= 29)
    {
        if (aatual%4==0 & datual <= 29 )
    {
        int Fevereiro= matual;
        bissexto = 1;
    }
    else
        if( datual <= 28 )
    {
    int Fevereiro= matual;
        bissexto = 0;
    }
    }
    else
        if(matual==3 & datual <= 31)
    {
        int Marco= matual;
    }
    else
        if(matual==4 & datual <=30)
    {
    int Abril= matual;
    }
    else
        if(matual==5 & datual <=31)
    {
    int Maio= matual;
    }
    else
        if(matual==6 & datual<=30)
    {
    int Junho= matual;
    }
    else
        if(matual==7 & datual <= 31)
    {
    int Julho= matual;
    }
    else
        if(matual==8 & datual <=31)
    {
    int Agosto= matual;
    }
    else
        if(matual==9 & datual <= 30)
    {
    int Setembro= matual;
    }
    else
        if(matual==10 & datual <= 31)
    {
    int Outubro= matual;
    }
    else
        if(matual==11 & datual <= 30)
    {
    int Novembro= matual;
    }
    else
        if(matual==12 & datual <= 31)
    {
    int Dezembro= matual;
    }
    else
    {
    printf("Erro Confirme os dados novamente... \n\n");
    return ColetaDados( );
    }
        
    if (aatual % 4 == 0 && (aatual % 400 == 0 || aatual % 100 != 0))   // ano em que atual é bissexto
      {
        printf("\nAno atual é bissexto.\n");
      }    
      else
    {
        printf("\nAno atual não é bissexto.\n");
    }    
    
        if (anasc % 4 == 0 && (anasc % 400 == 0 || anasc % 100 != 0))   // ano em que nasceu é bissexto
      {
          printf("\nAno que voçê nasceu é bissexto.\n");
      }    
      else
    {
        printf("\nAno que voçê nasceu não é bissexto.\n");
    }
            
          
    if(matual < mnasc) //Se não tiver feito aniversário, desconta 1
    {
        totalAnos = aatual - anasc -1;
        totalMes = totalAnos * 12;
        totalDias = totalMes * 365 + bissesto;
    }
    else if (matual = mnasc) //Se tiver no mes do aniversario
    {

        if(datual >= dnasc) //Verifiva se está no dia ou já passou
        {
            totalAnos = aatual - anasc;
            totalMes = totalAnos * 12;
            totalDias = totalMes * 365 + bissesto;
        }
        else  //Se já passou do mes do aniversario
        {
            totalAnos = aatual - anasc;
            totalMes = totalAnos * 12;
            totalDias = totalMes * 365 + bissesto;
        }
    
    }
    
        printf("Sua idade é: %d\n", totalAnos); //mostra idade da pessoa
        system("PAUSE");
        return 0;
    }
}
   

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.