Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2017
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.83 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. int testeSupremo(int decimal);
  4.  
  5. void codificar();
  6. void decodificar();
  7.  
  8.  
  9. int main()
  10. {
  11.     int escolha;
  12.  
  13.     while(1)
  14.     {
  15.         printf("\ndigite 1 para codificar, 2 para decodificar ou outro para sair: ");
  16.         scanf("%d", &escolha);
  17.  
  18.         if (escolha == 1)
  19.             codificar();
  20.         else if (escolha == 2)
  21.             decodificar();
  22.  
  23.         else
  24.             break;
  25.     }
  26.     return 0;
  27. }
  28. int testeSupremo(int decimal)
  29. {
  30.     int i=0, soma=0, verdadeiro=decimal;
  31.  
  32.     if (verdadeiro>127)
  33.     {
  34.         verdadeiro=verdadeiro-128;
  35.  
  36.         while (decimal)
  37.             {
  38.                 if (decimal%2==1)
  39.                 {
  40.                     i=i*10+1;
  41.                     soma++;
  42.                 }
  43.                 else
  44.                     i=i*10;
  45.                 decimal=decimal/2;
  46.             }
  47.         if(soma%2)
  48.             return 0;
  49.         else
  50.             return verdadeiro;
  51.     }
  52.     else
  53.     {
  54.         while (decimal)
  55.         {
  56.             if (decimal%2==1)
  57.             {
  58.                 i=i*10+1;
  59.                 soma++;
  60.             }
  61.             else
  62.                 i=i*10;
  63.             decimal=decimal/2;
  64.         }
  65.     if (soma%2)
  66.         return verdadeiro+128;
  67.     else
  68.         return verdadeiro;
  69.     }
  70. }
  71. void decodificar()
  72. {
  73.     int d;
  74.     char decodificado;
  75.     scanf("%d ", &d);
  76.  
  77.     while (d!=46)
  78.     {
  79.         decodificado=testeSupremo(d);
  80.  
  81.         if (decodificado)
  82.             printf("%c", decodificado);
  83.         else
  84.             printf("*");
  85.  
  86.         scanf("%d ", &d);
  87.     }
  88.     printf("%c", decodificado);
  89. }
  90.  
  91.  
  92. void codificar()
  93. {
  94.     char c;
  95.     int codificado;
  96.     scanf("%c", &c);
  97.  
  98.     while (c!='.')
  99.     {
  100.         scanf("%c", &c);
  101.         codificado=testeSupremo(c);
  102.  
  103.         printf("%d ", codificado);
  104.     }
  105. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement