1 solutions

  • 0
    @ 2024-12-10 21:47:36

    C :

    #include<stdio.h>
    #include<math.h>
    #include<stdlib.h>
    
    int main()
    {
    	int a[4] = {0};
    	int e[4] = {0};
    	int r_a[4] = {0};
    	int i, j, k; 
    	int temp_1;
    	int temp_2;
    	int temp_3;
    	int temp_4;
    	int temp_5;
    	int temp_6;
    	int temp_7;
    	char a_B[4][8];
    	char e_B[4][8];
    	char r_B[4][8];
    	scanf("%d.%d.%d.%d", &a[0], &a[1], &a[2], &a[3]);
    	scanf("%d.%d.%d.%d", &e[0], &e[1], &e[2], &e[3]);
    	for(i = 0; i < 8; i++)
    	{
    		a_B[0][i] = '0';
    		a_B[1][i] = '0';
    		a_B[2][i] = '0';
    		a_B[3][i] = '0';
    		e_B[0][i] = '0';
    		e_B[1][i] = '0';
    		e_B[2][i] = '0';
    		e_B[3][i] = '0';
    		r_B[0][i] = '0';
    		r_B[1][i] = '0';
    		r_B[2][i] = '0';
    		r_B[3][i] = '0';
    	}
    	for(i = 0; i < 4; i++)
    	{
    		temp_1 = 0;
    		temp_4 = a[i];
    		temp_5 = e[i];
    		while(a[i])
    		{
    			temp_2 = a[i] % 2;
    			a_B[i][temp_1] = '0' + temp_2;
    			a[i] /= 2;
    			temp_1++;
    		}
    		a[i] = temp_4;
    		temp_1 = 0;
    		while(e[i])
    		{
    			temp_2 = e[i] % 2;
    			e_B[i][temp_1] = '0' + temp_2;
    			e[i] /= 2;
    			temp_1++;
    		}
    		e[i] = temp_5;	
    		for(j = 0; j < 8; j++)
    		{
    			if(a_B[i][j] == '1' && e_B[i][j] == '1')
    			{
    				r_B[i][j] = '1';
    			}
    			else
    			{
    				r_B[i][j] = '0';
    			}
    			temp_6 = r_B[i][j] - '0';
    			temp_7 = pow(2, j);
    			r_a[i] += temp_6 * temp_7;	
    		}
    		
    	}
    	int n_i;
    	int n;
    	scanf("%d", &n);
    	int *nResult = (int *)malloc(n*sizeof(int));
    	char n_a_B[4][8];
    	char n_r_B[4][8];
    	int n_a[4] = {0};
    	int n_r_a[4] = {0};
    	for(n_i = 0; n_i < n; n_i++)
    	{
    		nResult[n_i] = 1;
    		scanf("%d.%d.%d.%d", &n_a[0], &n_a[1], &n_a[2], &n_a[3]);
    		for(i = 0; i < 8; i++)
    	    {
    		    n_a_B[0][i] = '0';
    		    n_a_B[1][i] = '0';
    		    n_a_B[2][i] = '0';
    		    n_a_B[3][i] = '0';
    	    	n_r_B[0][i] = '0';
    	    	n_r_B[1][i] = '0';
    		    n_r_B[2][i] = '0';
    		    n_r_B[3][i] = '0';
    	    }
    	    for(i = 0; i < 4; i++)
    	    {
    	    	n_r_a[i] = 0;
    	    } 
    	    for(i = 0; i < 4; i++)
    	    {
    		    temp_1 = 0;
    		    temp_4 = n_a[i];
    		    while(n_a[i])
    		    {
    			    temp_2 = n_a[i] % 2;
    			    n_a_B[i][temp_1] = '0' + temp_2;
    			    n_a[i] /= 2;
    			    temp_1++;
    		    }
    		    n_a[i] = temp_4;	
    		    for(j = 0; j < 8; j++)
    		    {
    			    if(n_a_B[i][j] == '1' && e_B[i][j] == '1')
    			    {
    				    n_r_B[i][j] = '1';
    			    }
    			    else
    			    {
    				    n_r_B[i][j] = '0';
    			    }
    			    temp_6 = n_r_B[i][j] - '0';
    			    temp_7 = pow(2, j);
    			    n_r_a[i] += temp_6 * temp_7;	
    	        }	
    	    }
    	    for(i = 0; i < 4; i++)
    		{
    			if(n_r_a[i] != r_a[i])
    			{
    				nResult[n_i] = 0;
    				break;
    			}
    		}
        }
    	for(i = 0; i < n; i++)
    	{
    		if(nResult[i])
    		{
    			printf("INNER\n");
    		}
    		else
    		{
    			printf("OUTER\n");
    		}
    	}
    	return 0;
    } 
    
    • 1

    【设计型】第11章:指针和数组 子网掩码

    Information

    ID
    489
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    (None)
    Tags
    # Submissions
    0
    Accepted
    0
    Uploaded By