Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <math.h>
- #include <ctype.h>
- #define MAX 40
- #define MIN 0
- typedef struct{
- int Num1, Num2, Num3, Num4;
- }TIp;
- void ConvertIP( TIp A, char * IP ){
- int Cont ;
- Cont = 7;
- do{
- IP[Cont--] = (A.Num1 % 2) + '0';
- }while( (A.Num1 = A.Num1 / 2 ) != 0 );
- Cont = 15;
- do{
- IP[Cont--] = (A.Num2 % 2) + '0';
- }while( ( A.Num2 = A.Num2 / 2 ) != 0 );
- Cont = 23;
- do{
- IP[Cont--] = (A.Num3 % 2) + '0';
- }while( ( A.Num3 = A.Num3 / 2 ) != 0 );
- Cont = 31;
- do{
- IP[Cont--] = (A.Num4 % 2) + '0';
- }while( ( A.Num4 = A.Num4 / 2 ) != 0 );
- IP[32] = '\0';
- }
- int main(void){
- TIp A, B, C;
- char Mask[MAX], IP1[MAX], IP2[MAX], Flag;
- int Cont;
- 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 ){
- for(Cont = 0; Cont < MAX; Cont++){
- Mask[Cont] = IP1[Cont] = IP2[Cont] = '0';
- }
- ConvertIP( A, IP1 );
- ConvertIP( B, IP2);
- ConvertIP( C, Mask );
- Flag = 1;
- for( Cont = 0; Mask[Cont] != '0' && Mask[Cont] != '\0' ; Cont++)
- if( IP1[Cont] != IP2[Cont] ){
- Flag = 0;
- break;
- }
- if( Flag == 1 )
- printf("S\n");
- else
- printf("N\n");
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement