This question already has answers here:
Why does C++ output negative numbers when using modulo?

(3个答案)


4年前关闭。




当两个数字均为正数时,我的程序将执行其功能,但是当其中一个数字为负数时,则不会。
#include <iostream>
using namespace std;

int main(){
    int a,b;
    b > 0;
    cin >> a >> b;
    int d;
    d = a/b;
    int r;
    r = a%b;
    cout << d << " " << r << endl;
}

在我的程序中:
  • 32/6 = 5 2(除法和余数)
  • -32/6 = -5 -2(除法和余数)

  • 应该执行什么程序:
  • 32/6 = 5 2(除法和余数)
  • -32/6 = -6 4(除法和余数)
  • 最佳答案

    您正在寻找modulus运算符'%'

    int a = 5 % 2;
    cout << a << endl;
    

    模运算符返回第一个值的余数除以第二个值。

    关于c++ - 如何将一个整数与另一个大于零的整数相除并求余数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39599387/

    10-11 00:46