Advertisement
VitorMDias

IP

Aug 31st, 2015
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.34 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <math.h>
  5. #include <ctype.h>
  6.  
  7. #define MAX 40
  8. #define MIN 0
  9.  
  10. typedef struct{
  11.     int Num1, Num2, Num3, Num4;
  12. }TIp;
  13.  
  14. void ConvertIP( TIp A, char * IP ){
  15.     int Cont ;
  16.    
  17.     Cont = 7;
  18.    
  19.     do{
  20.         IP[Cont--] = (A.Num1 % 2) + '0';
  21.        
  22.     }while( (A.Num1 = A.Num1 / 2 ) != 0 );
  23.    
  24.     Cont = 15;
  25.    
  26.     do{
  27.         IP[Cont--] = (A.Num2 % 2) + '0';
  28.        
  29.     }while( ( A.Num2 = A.Num2 / 2 ) != 0 );
  30.    
  31.     Cont = 23;
  32.    
  33.     do{
  34.         IP[Cont--] = (A.Num3 % 2) + '0';
  35.     }while( ( A.Num3 = A.Num3 / 2 ) != 0 );
  36.    
  37.     Cont = 31;
  38.    
  39.     do{
  40.         IP[Cont--] = (A.Num4 % 2) + '0';
  41.     }while( ( A.Num4 = A.Num4 / 2 ) != 0 );
  42.    
  43.     IP[32] = '\0';
  44.  
  45. }
  46.  
  47. int main(void){
  48.     TIp A, B, C;
  49.     char Mask[MAX], IP1[MAX], IP2[MAX], Flag;
  50.     int Cont;
  51.    
  52.     while( scanf("%d.%d.%d.%d %d.%d.%d.%d %d.%d.%d.%d", &A.Num1, &A.Num2, &A.Num3, &A.Num4, &B.Num1, &B.Num2, &B.Num3, &B.Num4, &C.Num1, &C.Num2, &C.Num3, &C.Num4) != EOF ){
  53.        
  54.         for(Cont = 0; Cont < MAX; Cont++){
  55.             Mask[Cont] = IP1[Cont] = IP2[Cont] = '0';
  56.         }
  57.        
  58.         ConvertIP( A, IP1 );
  59.         ConvertIP( B, IP2);
  60.         ConvertIP( C, Mask );
  61.        
  62.         Flag = 1;
  63.        
  64.         for( Cont = 0; Mask[Cont] != '0' && Mask[Cont] != '\0' ; Cont++)
  65.             if( IP1[Cont] != IP2[Cont] ){
  66.                 Flag = 0;
  67.                 break;
  68.             }
  69.            
  70.         if( Flag == 1 )
  71.             printf("S\n");
  72.         else
  73.             printf("N\n");
  74.        
  75.     }
  76.    
  77.    
  78.     return 0;
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement