SHARE
TWEET

Untitled

a guest Aug 18th, 2018 388 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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.
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top