假設我需要格式化數組的輸出以顯示每行固定數量的元素。我怎麼去做這個使用模數運算?模運算符是如何工作的?
使用C++,下面的代碼每行顯示6個元素,但我不知道它是如何工作的?
for (count = 0 ; count < size ; count++)
{
cout << somearray[count];
if(count % 6 == 5) cout << endl;
}
如果我想每行顯示5個元素,該怎麼辦?我如何找到所需的確切表達式?
假設我需要格式化數組的輸出以顯示每行固定數量的元素。我怎麼去做這個使用模數運算?模運算符是如何工作的?
使用C++,下面的代碼每行顯示6個元素,但我不知道它是如何工作的?
for (count = 0 ; count < size ; count++)
{
cout << somearray[count];
if(count % 6 == 5) cout << endl;
}
如果我想每行顯示5個元素,該怎麼辦?我如何找到所需的確切表達式?
它給你一個部門的其餘部分。
int c=11, d=5;
cout << (c/d) * d + c % d; // gives you the value of c
您可以將模運算符想象爲給你一個餘數。計數%6將盡可能多次除盡6次,並給出0到5之間的餘數(這些都是可能的餘數,因爲您已經儘可能多地分出了6次)。數組的元素全部打印在for循環中,但每次剩餘爲5(每6個元素)時,它會輸出一個換行符。這給你每行6個元素。對於每行5個元素,使用
如果(計數%5 == 4)
a % b
返回剩餘
(如果它們都是正的。對於負數符號的結果是實現定義的)。例如:
5 % 2 = 1
13 % 5 = 3
有了這些知識,我們可以嘗試瞭解您的代碼。條件count % 6 == 5
意味着當6的餘數除以5時將寫入換行符。這種情況發生的頻率如何?從第6行開始(count = 5),相隔6行(練習:寫入數字1..30並強調滿足此條件的數字)。
爲了從你的代碼中獲得所需的行爲,你應該改變條件爲count % 5 == 4
,從第5行開始(計數= 4),每5行會給你換行。
此的jsfiddle項目能夠幫助您瞭解如何工作模量: http://jsfiddle.net/elazar170/7hhnagrj
function modulus(x,y){
var m = Math.floor(x/y);
var r = m * y;
return x - r;
}
基本上模運算給你剩下 簡單的例子,在數學方面有什麼遺留/ 11餘除以3?答案是2
對於同樣的事C++有模運算符( '%')
用於解釋
#include <iostream>
using namespace std;
int main()
{
int num = 11;
cout << "remainder is " << (num % 3) << endl;
return 0;
}
基本代碼將顯示
餘數爲2
「對於負數sig n的結果是實現定義的「這在C++ 11中是不正確的 - 參見ISO14882:2011(e)5.6-4或https://stackoverflow.com/questions/7594508。 –