题解 | #识别有效的IP地址和掩码并进行分类统计#

识别有效的IP地址和掩码并进行分类统计

https://www.nowcoder.com/practice/de538edd6f7e4bc3a5689723a7435682

#include <stdio.h>

int main() {
    int ip[4]={0};
    int mk[4]={0};
    char str[50];
    int mask;
    int sum[7]={0};
    int i,len;
    int tail_ip[]={126,191,223,239,255};
    while(scanf("%s",str)!=EOF)
    {
       len=sscanf(str,"%d.%d.%d.%d~%d.%d.%d.%d",ip,ip+1,ip+2,ip+3,mk,mk+1,mk+2,mk+3);
       if(ip[0]==0||ip[0]==127)//0或者127忽略不计
       {
           continue;
       }
       if(len!=8)//有空数字为错误ip
       {
           sum[5]++;
           continue;
       }
       if((mk[0]==0)||(mk[0]==255&&mk[1]==255&&mk[2]==255&&mk[3]==255))//全是0或者全是1为错误掩码
       {
           sum[5]++;
           continue;
       }
       mask=(mk[0]<<24)+(mk[1]<<16)+(mk[2]<<8)+mk[3];//掩码合并
       if((~mask+1)& ~mask)
       {
           sum[5]++;
           continue;
       }
       for(i=0;ip[0]>tail_ip[i];i++);//ip类型判断
       sum[i]++;
       if(ip[0]==10||(ip[0]==172&&ip[1]>=16&&ip[1]<=31)||(ip[0]==192&&ip[1]==168))//私网ip
       {
           sum[6]++;
       }
    }
    for(i=0;i<7;i++)
    {
        printf("%d ",sum[i]);
    }
    return 0;
}

全部评论
为什么我本地的clion运行报错,这里却成功了,是我的版本太低了吗
点赞 回复 分享
发布于 2023-11-16 21:08 广东

相关推荐

头像
10-22 17:08
安徽大学 Java
点赞 评论 收藏
分享
twicewood:这应该是从寒假池捞的,所以才是暑假实习,实则还是校招,因为我也这样,一面过了就跑到校招流程了
点赞 评论 收藏
分享
牛客263158796号:我领羊一面后十天不挂也不推进 今天问hr说等前序的第一批意向发完看情况再看是否推进
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务