2016-09-20 39 views
1

當兩個數都是正數時,我的程序會執行其功能,但當其中一個數爲負時,它不會。如何用大於零的另一個數除整數並給出剩餘數

#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(除法和剩餘的nDer)
  • -32/6 = -6 4(分割和餘數)
+0

請在這裏複製的代碼.. – amchacon

+4

查找在你最喜歡的C「模」或「模數」 ++或數學引用。你也可以搜索維基百科! –

+2

[僅供參考] C++模塊在純數學中不起作用。請參閱:http://stackoverflow.com/questions/13683563/whats-the-difference-between-mod-and-remainder – NathanOliver

回答

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; 
} 
2

你正在尋找的modulus操作者,'%'

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

模數運算符返回第一個值的餘數除以第二個值。