我有这段测试代码(有相当多的其他材料;但是,它非常密集,可能与这个问题无关),它产生了一些莫名其妙的输出。在编译时,该块:意外的数学分区输出 - C++
cout << team1[m].rating << endl;
cout << team2[n].rating << endl;
cout << team1.size() << endl;
cout << team2.size() << endl;
cout << (team2[n].rating - team1[m].rating)/team2.size() << endl;
cout << (team1[m].rating - team2[n].rating)/team1.size() << endl;
产生输出:
10
30
2
2
10
2147483638
'TEAM1' 和 'TEAM2' 均为vector<player>
型(无反斜杠)的,并显示 '播放器' 结构,如下所示:
struct player {
string name;
int rating;
player(string Name, int Rating) :
name(Name), rating(Rating) {}
};
为什么你认为所需的结果是签名?计算中需要一个绝对值很有可能 – SomeWittyUsername
@icepack:在OP没有任何信息的情况下,相对于预期的结果,我只能使用提供的信息工作 - 似乎是从无符号模数回绕在这种情况下,促销就是“意外”。如果需要其他一些行为,我相信OP会进一步澄清。 –