2016-09-20 5 views
1

私のプログラムは、両方の数値が正のときに機能しますが、どちらかが負のときは機能しません。整数を0より大きい別の数値で割り、余りを与える方法

  • 6分の32 = 5 2(除算と剰余)
  • -32/6 = -5 -2(除算と剰余)
:私のプログラムで

#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(除算と再計算NDER)
  • -32/6 = -6 4(除算と剰余)
+0

ここにコードをコピーしてください。.. – amchacon

+4

お気に入りのC++または数学の言及で「剰余」または「モジュラス」を検索します。あなたはウィキペディアを検索することもできます! –

+2

[FYI] 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; 

モジュラス演算子は、最初の値を2番目の値で割った余りを返します。

関連する問題