一丁_ 2019-05-25 21:20 采纳率: 0%
浏览 1886

给定两个 IP 地址和子网掩码判断 IP 是否属于同一网段

1.问题:程序可以运行,但运行结果测试用例通过率只有 75% ,问哪里出现了漏洞?

2.题目描述:给定两个 IP 地址和子网掩码判断 IP 是否属于同一网段

输入描述:IP地址 1,IP地址 2,子网掩码,三个字段之间用空格分隔。能够确保输入的 IP 和子网掩码是合法的。

输出描述:先输出 0 或者 1,0 表示不属于同一网段,1 表示属于同一网段。紧接着输出空格,然后在输出第一个 IP 地址与子网掩码二进制按位与之后的 IP。

参考输入1:192.168.1.1 192.168.1.2 255.255.255.0

参考输出1:1 192.168.1.0

参考输入 2:192.168.1.5 192.168.2.1 255.255.255.0

参考输出 2:0 192.168.1.0

#include <iostream>
#include <string>
#include <sstream>
using namespace std;

int main()
{
    int da1 = 0, db1 = 0, dc1 = 0, dd1 = 0;  //地址一字段
    int da2 = 0, db2 = 0, dc2 = 0, dd2 = 0;  //地址二字段
    int ma = 0, mb = 0, mc = 0, md = 0;      //子网字段
    char ch;
    string str;
    while(cin >> str)
    {
        stringstream ss;
        ss << str;
        ss >> da1 >> ch >> db1 >> ch >> dc1 >> ch >> dd1; //地址 1 输入
        ss.clear();
        cin >> str;
        ss << str;
        ss >> da2 >> ch >> db2 >> ch >> dc2 >> ch >> dd2; //地址 2 输入
        ss.clear();
        cin >> str;
        ss << str;
        ss >> ma >>ch >> mb >> ch >> mc >> md;            //地址 3 输入
        ss.clear();

        if((da1 & ma) == (da2 & ma) && (db1 & mb) == (db2 & mb) &&
            (dc1 & mc) == (dc2 & mc) && (dd1 & md) == (dd2 & md)) //判断是否属于同一网络
        {
            cout << 1 << ' ' << int(da1 & ma) << '.' << int(db1 & mb) << '.' << int(dc1 & mc) << '.' << int(dd1 &md);
        }
        else
        {
            cout << 0 << ' ' << int(da1 & ma) << '.' << int(db1 & mb) << '.' << int(dc1 & mc) << '.' << int(dd1 &md);
        }
        cout << endl;
        da1 = 0, db1 = 0, dc1 = 0, dd1 = 0;
        da2 = 0, db2 = 0, dc2 = 0, dd2 =  0;
        ma = 0, mb = 0, mc = 0, md = 0;
    }
    return 0;
}

  • 写回答

1条回答

  • CSDN-Ada助手 CSDN-AI 官方账号 2022-09-20 21:44
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:

    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

悬赏问题

  • ¥50 NT4.0系统 STOP:0X0000007B
  • ¥15 想问一下stata17中这段代码哪里有问题呀
  • ¥15 flink cdc无法实时同步mysql数据
  • ¥100 有人会搭建GPT-J-6B框架吗?有偿
  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。