Guest User

Untitled

a guest
Aug 18th, 2018
456
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.42 KB | None | 0 0
  1. /*###########################################################*\
  2. #                                                             #
  3. # Problema  : 'apaga.c'                                       #
  4. # Autor     : Edgar Damasceno - edgar.damasceno@hotmail.com   #
  5. #           : Leonardo Negrelli - leonardoguzo@hotmail.com    #
  6. #           : Robson Melo - robson_blz@hotmail.com            #
  7. # Desrcicao : Le uma cadeia de N caracteres numéricos e re-   #
  8. #             move o D menores valores.                       #
  9. # Parada    : Deve parar quando N e D forem iguais a zero     #
  10. # Entrada   : Uma linha c\ Dois inteiro N e D                 #
  11. #             EX: 4 2                                         #
  12. #             Uma linha c\ uma cadeia de algarismos (0 a 9)   #
  13. #             EX: 2749                                        #
  14. # Saída     : String resultante + quebra de linha.            #
  15. #             EX: 79                                          #
  16. #                                                             #
  17. \*###########################################################*/
  18.  
  19. //----------------------- Bibliotecas -------------------------
  20. #include <stdlib.h>
  21. #include <stdio.h>
  22. #include <string.h>
  23.  
  24. //------------------- Programa Principal ----------------------
  25. int main(){
  26.   char cadeia[100000];                                    //Cria a cadeia de caracteres (string).
  27.   int pos_menor;                                          //Cria um int que ira armazenar o indice do menor valor da cadeia.
  28.   int i, j;                                               //Cria as variaveis int de controle de laco.
  29.   int N, D;                                               //Cria as variaveis int 'N' e 'D'.
  30.  
  31.   scanf("%d %d", &N, &D);                                 //Le do teclado dois int e armazena em 'N' e 'D'.
  32.  
  33.   while(N && D){                                          //Verifica a condicao de parada.
  34.     scanf("%s", cadeia);                                  //Le a cadeia de algarismos e armazena em 'cadeia'.
  35.     for(i = 0; i < D; i++){                               //Laco de repeticao que repete 'D' vezes.
  36.       pos_menor = 0;
  37.       j=0;                                      //Atribui zero (primeira posicao) a 'pos_menor'.
  38.       while(cadeia[j]!='\0'){                             //Laco de repeticao que repete até o fim da cadeia.
  39.         if( (cadeia[j]) < (cadeia[pos_menor])){           //Verifica de o carectere na posicao j eh menor que o que esta em 'pos_menor'.
  40.           pos_menor = j;                                  //Se for menor, 'pos_menor' recebe 'j'.
  41.         }                                                 //Fim da condicao.
  42.         j++;                                              //Incrementa 'j'.
  43.       }                                                   //Fim do laco.
  44.       strcpy(&cadeia[pos_menor], &cadeia[pos_menor + 1]); //Exclui o char.
  45.     }                                                     //Fim do laco.
  46.     printf("%s\n", cadeia);                               //Imprime o resultado do processamento na saida padrao
  47.     scanf("%d %d", &N, &D);                               //Le do teclado dois int e armazena em 'N' e 'D'.
  48.   }                                                       //Fim do laco.
  49.   return 0;                                               //Retorna '0', sinalizando uma execucao bem sucedida.
  50. }                                                         //Fim do programa principal.
Add Comment
Please, Sign In to add comment