C++ C++; #包括 #包括 使用名称空间std; int testMul(int a,int b) { return!a | | a*b/a==b; } int main() { INTA,b; 而(cin>>a>>b)cout

C++ C++; #包括 #包括 使用名称空间std; int testMul(int a,int b) { return!a | | a*b/a==b; } int main() { INTA,b; 而(cin>>a>>b)cout,c++,C++,当你将-1和-2147483648相乘时,你会得到有符号溢出,这在C++中是一种未定义的行为,其结果可以是任意的,直到你的计算机着火。因此,被零除实际上不是一个坏结果。如果你得到了这个输入,你已经知道问题是什么了。。。。 #include <iostream> #include <string.h> using namespace std; int testMul(int a, int b) { return !a || a * b / a == b; } i

当你将
-1
-2147483648
相乘时,你会得到有符号溢出,这在C++中是一种未定义的行为,其结果可以是任意的,直到你的计算机着火。因此,被零除实际上不是一个坏结果。

如果你得到了这个输入,你已经知道问题是什么了。。。。
#include <iostream>
#include <string.h>
using namespace std;

int testMul(int a, int b)
{
    return !a || a * b / a == b;
}

int main()
{
    int a, b;
    while(cin >> a >> b) cout << testMul(a, b) << endl;
    return 0;
}