quarta-feira, 14 de novembro de 2012

Como separar os dígitos de um número inteiro

Mais uma pequena solução para um pequeno problema.

Agora a situação é para separar os dígitos de um numero inteiro, permitindo aplicações como cálculos de dígitos de verificação (DV) ou dígito para auto conferência (DAC) de identificações como RG, CPF, CNPJ, etc.

Vejam o código a seguir:


#include

int main()
{
    long long int numero = 876543210987654321LL;

    do{
        printf( "\n%d" , (int)(numero % 10) );
    } while ( numero /= 10  );

    return 0;
}

Cópia de tela da execução:


Bom estudo e até a próxima.


Como obter a parte inteira de um número real

Para um pequeno problema, uma solução também pequena.

Considere a situação onde se tenha um número real (double) e deseja-se separar a parte inteira da fracionada. Restrição: não usar qualquer biblioteca pronta.

Vejam o código a seguir.

#include

int main()
{

    double areaAmbiente = 3.7999999999;
    double areaEmbalagem = 1.8;

    int qtdEmbalagensInteger = areaAmbiente / areaEmbalagem;
    double qtdEmbalagensReal = areaAmbiente / areaEmbalagem;

    printf( "\n %d %c %10.4f ",
           qtdEmbalagensInteger,
           (qtdEmbalagensInteger < qtdEmbalagensReal ? 
            '<' : qtdEmbalagensInteger > qtdEmbalagensReal ? 
                  '>' : '='),
           qtdEmbalagensReal );

    qtdEmbalagensInteger += 
               qtdEmbalagensInteger < qtdEmbalagensReal ? 1 : 0;

    printf( "\nEmbalagens requeridas: %d",
           qtdEmbalagensInteger);

    return 0;

}

Bom estudo e até a próxima.