4.11. Escreva um programa completo em C que solicite ao usuário dois números inteiros entre 0 e 255 e escreva na tela todos os caracteres da tabela ASCII cujos códigos variem entre os dois números introduzidos, escrevendo em cada linha o código ASCII e o caractere correspondente.

Passo 1

Dá uma olhada no exercício anterior antes de começar esse aqui. Para escrever os caracteres na tela vamos usar um código muito parecido com o código do exercício 4.11:

f o r   ( i n t   i = n m i n ;   i < = n m a x ;   i + + )

        {

                p r i n t f   ( " \ n % d   - - - - >   % 4 c \ n " ,   i   , ( c h a r )   i ) ;

        }

Tudo que precisamos fazer agora é que o usuário insira o número mínimo e o número máximo.

Passo 2

Para ler uma entrada do usuário usamos o comando scanf, nesse programa, a gente pode começar pedindo para que o usuário atribua os valores para o número mínimo e o número máximo:

i n t   n m i n ,   n m a x ;

        p r i n t f ( " d i g i t e   d o i s   n u m e r o s   e n t r e   0   e   255 : \ n " ) ;

        s c a n f ( " % d \ n % d " , & n m i n ,   & n m a x ) ;

A gente precisa tomar uns cuidados aqui, primeiro a gente precisa garantir que o número mínimo seja menor que o número máximo, então podemos usar um if, em que dizemos que se o número mínimo for maior que o número máximo, trocamos o valor das variáveis:

i f   ( n m i n > n m a x )

        {

                i n t   a u x   =   n m i n ;

                n m i n   =   n m a x ;

                n m a x   =   a u x ;

        }

Outro cuidado que precisamos tomar é que o usuário tenha digitado números dentro do intervalo que a gente definiu. Para fazer isso podemos usar do while, nós pedimos para o usuário escolher dois números, enquanto o menor número for menor que 0 e maior número maior que 255 :

          i n t   n m i n ,   n m a x ;

        d o

        {        

        p r i n t f ( " d i g i t e   d o i s   n u m e r o s   e n t r e   0   e   255 : \ n " ) ;

        s c a n f ( " % d \ n % d " , & n m i n ,   & n m a x ) ;

        i f   ( n m i n > n m a x )

        {

                i n t   a u x   =   n m i n ;

                n m i n   =   n m a x ;

                n m a x   =   a u x ;

        }

        }

        w h i l e   ( n m i n   <   0   | |   n m a x   > 255 ) ;

Passo 3

Agora a gente só precisa juntar tudo isso em um único programa:

# i n c l u d e   < s t d i o . h >

i n t   m a i n ( )

{

        i n t   n m i n ,   n m a x ;

        d o

        {        

        p r i n t f ( “ d i g i t e   d o i s   n u m e r o s   e n t r e   0   e   255 : \ n " ) ;

        s c a n f ( " % d \ n % d " , & n m i n ,   & n m a x ) ;

          i f   ( n m i n > n m a x )

        {

                i n t   a u x   =   n m i n ;

                n m i n   =   n m a x ;

                n m a x   =   a u x ;

        }

        }

        w h i l e   ( n m i n   <   0   | |   n m a x   > 255 ) ;

        f o r   ( i n t   i = n m i n ;   i < = n m a x ;   i + + )

          {                    

                          p r i n t f   ( " \ n % 4 d   - - - - >   % 4 c \ n " , i   , ( c h a r )   i ) ;

          }

        r e t u r n   0 ;

}

Resposta

# i n c l u d e   < s t d i o . h >

i n t   m a i n ( )

{

        i n t   n m i n ,   n m a x ;

        d o

        {        

        p r i n t f ( “ d i g i t e   d o i s   n u m e r o s   e n t r e   0   e   255 : \ n " ) ;

        s c a n f ( " % d \ n % d " , & n m i n ,   & n m a x ) ;

          i f   ( n m i n > n m a x )

        {

                i n t   a u x   =   n m i n ;

                n m i n   =   n m a x ;

                n m a x   =   a u x ;

        }

        }

        w h i l e   ( n m i n   <   0   | |   n m a x   > 255 ) ;

        f o r   ( i n t   i = n m i n ;   i < = n m a x ;   i + + )

          {                    

                          p r i n t f   ( " \ n % 4 d   - - - - >   % 4 c \ n " , i   , ( c h a r )   i ) ;

          }

        r e t u r n   0 ;

}