如何将整数与另一个大于零的数字分开并给出另一个数字

时间:2016-09-20 16:30:23

标签: c++

当两个数字都是正数时,我的程序会发挥作用,但当其中一个数字为负数时,它就不起作用。

#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(除法和余数)

2 个答案:

答案 0 :(得分:2)

您正在寻找modulus运营商'%'

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

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

答案 1 :(得分:0)

我自己开始工作了。对于任何需要这样的程序的人来说,这是:

#include <iostream>
using namespace std;

int main(){
    int a,b;
    cin >> a >> b;
    int d = a/b;
    int r = a%b;
    if (r < 0){
        d = d-1;
        int s = d*b;
        r = -s+a;
    }
    cout << d << " " << r << endl;
}