Programar em C: Exercícios Finais: Exercício 3

Origem: Wikilivros, livros abertos por um mundo aberto.

[editar] Exercício 3

 #include <stdio>
 #include <stdlib.h>
 #define ARSIZE  10
 main(){
        int m_carac[ARSIZE],qtd1;
        int qtd2, pare, ultcar;
        ultcar = 0;
        pare = 0;
        /*
         * Le os caracteres para uma matriz.
         * Para se for o fim da linha ou a matriz estiver cheia.
         */
        while(pare != 1)
          {
                m_carac[ultcar] = getchar();
                if(m_carac[ultcar] == '\n')
                        pare = 1;
                else
                        ultcar = ultcar + 1;
                if(ultcar == ARSIZE)
                        pare = 1;
         }
        ultcar = ultcar-1;
        /*
         * Agora executa a ordenação bolha tradicional.
         */
        qtd1 = 0;
        while(qtd1 < ultcar)
          {
                qtd2 = qtd1 + 1;
                while(qtd2 <= ultcar)
		     {
                        if(m_carac[qtd1] > m_carac[qtd2])
			  {
                                /* troca */
                                int temp;
                                temp = m_carac[qtd1];
                                m_carac[qtd1] = m_carac[qtd2];
                                m_carac[qtd2] = temp;
                         }
                        qtd2 = qtd2 + 1;
                     }
                qtd1 = qtd1 + 1;
          }
       qtd1 = 0;
       while(qtd1 <= ultcar)
           {
               printf("%c\n", m_carac[qtd1]);
               qtd1 = qtd1 + 1;
           }
       exit(EXIT_SUCCESS);
  }