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 */