Separando dígitos. Escreva segmentos de programa que realizem, cada um, o seguinte:
a) O cálculo da parte inteira do quociente quando o inteiro a é dividido pelo inteiro b.
b) O cálculo do módulo inteiro quando o inteiro a é dividido pelo inteiro b.
c) Use as partes do programa desenvolvidas em a) e b) para escrever uma função que peça um inteiro entre 1 e 32767 e o imprima como uma série de dígitos, com dois espaços entre cada dígito. Por exemplo, o inteiro 4562 deverá ser impresso como:
4 5 6 2
Passo 1
Fala Galera!!! Tudo certo? Espero que sim!!! Bora para mais um exercício.
Vamos escrever um programa que consiga receber um inteiro entre 1 e 32767 e imprima o numero como um serie de digito com dois espaços entre cada digito. Para isso vamos utilizar duas funções quotient e remainder. As funções serão responsáveis em determinar o quociente e o resto da divisão do número.
Definindo as duas funções:
/* Parte A: determina o quociente usando a divisão inteira */
int quotient( int a, int b )
{
return a / b;
} /* end function quotient */
/* Parte B: determina o resto usando o operador de resto */
int remainder( int a, int b )
{
return a % b;
} /* end function remainder */
Passo 2
Agora vamos inicializar a função main(), e solicitar a entrada do numero para o usuário e chamar as funções para retornar o número separado. Vamos utilizar um while para percorrer cada digito do numero e realizar o processo de separação.
#include
int quotient( int a, int b ); /* prototipo*/
int remainder( int a, int b ); /* prototipo */
int main()
{
int number;
/* número de entrada */
int divisor = 10000;
/* divisor atual */
//solicita entrada do numero
printf( "Insira um numero inteiro entre 1 e 32767: " );
scanf( "%d", &number );
printf( "Os digitos do numero sao:\n" );
/* determina e imprime cada dígito */
while ( number >= 10 ) {
/* se o número for >= divisor atual, determina o dígito */
if ( number >= divisor ) {
/* usa quociente para determinar o dígito atual */
printf( "%d ", quotient( number, divisor ) );
/* atualiza o número para ser o restante */
number = remainder( number, divisor );
/* atualiza o divisor do próximo dígito */
divisor = quotient( divisor, 10 );
} /* end if */
else {
/* se número
divisor = quotient( divisor, 10 );
} /* end else */
} /* end while */
printf( "%d\n", number );
return 0;
} /* end main */
Passo 3
A saída do nosso programa será:
E assim finalizamos mais um exercício. Até o próximo galera!!!!
Resposta
Código:
#include
int quotient( int a, int b ); /* prototipo*/
int remainder( int a, int b ); /* prototipo */
int main()
{
int number;
/* número de entrada */
int divisor = 10000;
/* divisor atual */
//solicita entrada do numero
printf( "Insira um numero inteiro entre 1 e 32767: " );
scanf( "%d", &number );
printf( "Os digitos do numero sao:\n" );
/* determina e imprime cada dígito */
while ( number >= 10 ) {
/* se o número for >= divisor atual, determina o dígito */
if ( number >= divisor ) {
/* usa quociente para determinar o dígito atual */
printf( "%d ", quotient( number, divisor ) );
/* atualiza o número para ser o restante */
number = remainder( number, divisor );
/* atualiza o divisor do próximo dígito */
divisor = quotient( divisor, 10 );
} /* end if */
else {
/* se número
divisor = quotient( divisor, 10 );
} /* end else */
} /* end while */
printf( "%d\n", number );
return 0;
} /* end main */
/* Parte A: determina o quociente usando a divisão inteira */
int quotient( int a, int b )
{
return a / b;
} /* end function quotient */
/* Parte B: determina o resto usando o operador de resto */
int remainder( int a, int b )
{
return a % b;
} /* end function remainder */