Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*###########################################################*\
- # #
- # Problema : 'apaga.c' #
- # Autor : Edgar Damasceno - edgar.damasceno@hotmail.com #
- # : Leonardo Negrelli - leonardoguzo@hotmail.com #
- # : Robson Melo - robson_blz@hotmail.com #
- # Desrcicao : Le uma cadeia de N caracteres numéricos e re- #
- # move o D menores valores. #
- # Parada : Deve parar quando N e D forem iguais a zero #
- # Entrada : Uma linha c\ Dois inteiro N e D #
- # EX: 4 2 #
- # Uma linha c\ uma cadeia de algarismos (0 a 9) #
- # EX: 2749 #
- # Saída : String resultante + quebra de linha. #
- # EX: 79 #
- # #
- \*###########################################################*/
- //----------------------- Bibliotecas -------------------------
- #include <stdlib.h>
- #include <stdio.h>
- #include <string.h>
- //------------------- Programa Principal ----------------------
- int main(){
- char cadeia[100000]; //Cria a cadeia de caracteres (string).
- int pos_menor; //Cria um int que ira armazenar o indice do menor valor da cadeia.
- int i, j; //Cria as variaveis int de controle de laco.
- int N, D; //Cria as variaveis int 'N' e 'D'.
- scanf("%d %d", &N, &D); //Le do teclado dois int e armazena em 'N' e 'D'.
- while(N && D){ //Verifica a condicao de parada.
- scanf("%s", cadeia); //Le a cadeia de algarismos e armazena em 'cadeia'.
- for(i = 0; i < D; i++){ //Laco de repeticao que repete 'D' vezes.
- pos_menor = 0;
- j=0; //Atribui zero (primeira posicao) a 'pos_menor'.
- while(cadeia[j]!='\0'){ //Laco de repeticao que repete até o fim da cadeia.
- if( (cadeia[j]) < (cadeia[pos_menor])){ //Verifica de o carectere na posicao j eh menor que o que esta em 'pos_menor'.
- pos_menor = j; //Se for menor, 'pos_menor' recebe 'j'.
- } //Fim da condicao.
- j++; //Incrementa 'j'.
- } //Fim do laco.
- strcpy(&cadeia[pos_menor], &cadeia[pos_menor + 1]); //Exclui o char.
- } //Fim do laco.
- printf("%s\n", cadeia); //Imprime o resultado do processamento na saida padrao
- scanf("%d %d", &N, &D); //Le do teclado dois int e armazena em 'N' e 'D'.
- } //Fim do laco.
- return 0; //Retorna '0', sinalizando uma execucao bem sucedida.
- } //Fim do programa principal.
Add Comment
Please, Sign In to add comment