Laten we zeggen dat ik de uitvoer van een array moet opmaken om een vast aantal elementen per regel weer te geven. Hoe ga ik om het gebruik van Modulus-operatie?
Gebruik C++, de onderstaande code werkt voor het weergeven van 6 elementen per regel, maar ik heb geen idee hoe en waarom het werkt?
for ( count = 0 ; count < size ; count++)
{
cout << somearray[count];
if( count % 6 == 5) cout << endl;
}
Wat als ik 5 elementen per regel wil weergeven? Hoe vind ik de exacte expressie nodig?
Antwoord 1, Autoriteit 100%
In C++ Expression a % b
Retourneert de rest van de divisie van een door B (als ze positief zijn. Voor negatieve nummers Teken van resultaat is de uitvoering gedefinieerd). Bijvoorbeeld:
5 % 2 = 1
13 % 5 = 3
Met deze kennis kunnen we proberen uw code te begrijpen. Conditie count % 6 == 5
betekent dat Newline wordt geschreven wanneer de rest van de divisie tellen met 6 vijf is. Hoe vaak gebeurt dat? Precies 6 regels uit elkaar (oefenen: schrijf nummers 1..30 en onderstreep degenen die aan deze aandoening voldoen), beginnend bij 6-TH-lijn (Count = 5).
Om het gewenste gedrag van uw code te krijgen, moet u de toestand wijzigen in count % 5 == 4
, wat geeft u de 5 lijnen, beginnend bij 5-TELLEN (Count = 4) .
Antwoord 2, Autoriteit 17%
In principe Modulus-operator geeft u rest
Eenvoudig voorbeeld in wiskunde Wat is er over / rest van 11 gedeeld door 3? antwoord is 2
Voor hetzelfde ding C++ heeft Modulus-operator (‘%’)
Basiscode voor uitleg
#include <iostream>
using namespace std;
int main()
{
int num = 11;
cout << "remainder is " << (num % 3) << endl;
return 0;
}
Wat wordt weergegeven
rest is 2
Antwoord 3, autoriteit 7%
Dit JSFiddle-project kan u helpen te begrijpen hoe modulus werkt:
http://jsfiddle.net/elazar170/7hhnagrj
De modulusfunctie werkt ongeveer als volgt:
function modulus(x,y){
var m = Math.floor(x / y);
var r = m * y;
return x - r;
}
Antwoord 4, autoriteit 5%
Het geeft je de rest van een deling.
int c=11, d=5;
cout << (c/d) * d + c % d; // gives you the value of c
Antwoord 5, autoriteit 5%
Je kunt de modulus-operator zien als een rest. tel % 6 deelt 6 zo vaak als het kan van de tel en geeft je een rest van 0 tot 5 (Dit zijn alle mogelijke resten omdat je 6 al zo vaak hebt gedeeld als je kunt). De elementen van de array worden allemaal afgedrukt in de for-lus, maar elke keer dat de rest 5 is (elk 6e element), wordt een nieuwe regel weergegeven. Dit geeft je 6 elementen per regel. Gebruik voor 5 elementen per regel
if (tel % 5 == 4)