GatoBooster

Ejercicio Acepta el Reto

Oct 4th, 2017
173
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.08 KB | None | 0 0
  1. http://rextester.com/live/TXVM84135
  2.  
  3. //gcc 5.4.0
  4.  
  5. //Librerias
  6. #include <stdio.h>
  7. //#define MAX 101
  8. #define MAX 102 //*********OJOOO    POR SI HAY QUE AGREGAR UN 1
  9.  
  10. #include <string.h>
  11.  
  12. int main(){                                             //Inicio del Main
  13.     //Declaración de Variables
  14.     char cadena[MAX], result[MAX];
  15.     int i, j, largo;
  16.     short int flag, cont;
  17.     char hexa[17] = "0123456789ABCDEF";
  18.    
  19.     //for(h = 1; h <= MAX; h++){
  20.    
  21.     //OJO Un caso de prueba con la cadena FIN marca el final.
  22.     strcpy(result,"");
  23.     while (strcmp(result,"FIN") != 0)
  24.     {      
  25.        
  26.         scanf("%100[^\n]s", result);                                //Ingresar los valores para la cadena
  27.         getchar(); //SE LEE EL ENTER QUE QUEDA EN EL BUFFER
  28.        
  29.         //SOLO SE PROCESA LA CADENA SI ES DISTINTA DE "FIN"
  30.        
  31.         if (strcmp(result,"FIN") != 0) {
  32.            
  33.            
  34.             //NO ES NECESARIO VALIDAR !!!
  35.             /*for(i = 0; i < largo; i++){                         //Validar los valores ingresados
  36.                 cont=0;
  37.                 for(j = 0; j < 16; j++){
  38.                     if(result[i] != hexa[j]){
  39.                         cont++;
  40.                     }
  41.                     if(cont == 16){
  42.                         return 0;
  43.                     }
  44.                 }    
  45.             }*/
  46.            
  47.             //OJO LA CADENA DEBE tener 102 caracteres posiciones entre 0 y 101
  48.             // si te ingresan 100 F's
  49.            
  50.             for(i = 0; i < MAX; i++){
  51.                 cadena[i] = '0';
  52.             }
  53.            
  54.             largo = strlen(result);
  55.             //Rellenar los valores en la cadena
  56.             //for(i = MAX; largo >= 0; i--){
  57.             for(i = MAX-1; largo >= 0; i--){
  58.            
  59.                 cadena[i] = result[largo];
  60.                 largo--;
  61.             }
  62.            
  63.             flag=0;
  64.             //for(i = MAX-1;  i >= 0; i--){
  65.             for(i = MAX-2;  i >= 0; i--){            
  66.              
  67.                 for(j = 0; j < 16; j++){            
  68.                     if(cadena[i] == hexa[j]){        
  69.                         if(cadena[i] == 'F'){                 //Cuando es igual a F
  70.                             cadena[i] = '0';
  71.                             break;
  72.                         }
  73.                         cadena[i] = hexa[j+1];              //Cuando no es igual a F
  74.                         flag = 1;
  75.                         break;
  76.                     }
  77.                 }
  78.                 if(flag == 1){
  79.                     break;
  80.                 }
  81.             }
  82.      
  83.             //for(i = 0; i < MAX; i++){
  84.             for(i = 0; i < MAX - 1; i++){
  85.              
  86.                 if(cadena[i] != '0'){
  87.                     largo = i;
  88.                     break;
  89.                 }
  90.             }
  91.  
  92.             //for(i = largo; i < MAX; i++){
  93.             for(i = largo; i < MAX-1; i++){
  94.              
  95.                 printf("%c",cadena[i]);
  96.             }
  97.             printf("\n");
  98.         }      
  99.      }                
  100.     return 0;
  101. }
Advertisement
Add Comment
Please, Sign In to add comment