How does the modulus operator work?

前端 未结 5 1494
忘了有多久
忘了有多久 2020-11-27 17:19

Let\'s say that I need to format the output of an array to display a fixed number of elements per line. How do I go about doing that using modulus operation?

Using C

相关标签:
5条回答
  • 2020-11-27 17:58

    in C++ expression a % b returns remainder of division of a by b (if they are positive. For negative numbers sign of result is implementation defined). For example:

    5 % 2 = 1
    13 % 5 = 3
    

    With this knowledge we can try to understand your code. Condition count % 6 == 5 means that newline will be written when remainder of division count by 6 is five. How often does that happen? Exactly 6 lines apart (excercise : write numbers 1..30 and underline the ones that satisfy this condition), starting at 6-th line (count = 5).

    To get desired behaviour from your code, you should change condition to count % 5 == 4, what will give you newline every 5 lines, starting at 5-th line (count = 4).

    0 讨论(0)
  • 2020-11-27 18:02

    Basically modulus Operator gives you remainder simple Example in maths what's left over/remainder of 11 divided by 3? answer is 2

    for same thing C++ has modulus operator ('%')

    Basic code for explanation

    #include <iostream>
    using namespace std;
    
    
    int main()
    {
        int num = 11;
        cout << "remainder is " << (num % 3) << endl;
    
        return 0;
    }
    

    Which will display

    remainder is 2

    0 讨论(0)
  • 2020-11-27 18:02

    It gives you the remainder of a division.

    int c=11, d=5;
    cout << (c/d) * d + c % d; // gives you the value of c
    
    0 讨论(0)
  • 2020-11-27 18:11

    You can think of the modulus operator as giving you a remainder. count % 6 divides 6 out of count as many times as it can and gives you a remainder from 0 to 5 (These are all the possible remainders because you already divided out 6 as many times as you can). The elements of the array are all printed in the for loop, but every time the remainder is 5 (every 6th element), it outputs a newline character. This gives you 6 elements per line. For 5 elements per line, use

    if (count % 5 == 4)

    0 讨论(0)
  • 2020-11-27 18:12

    This JSFiddle project could help you to understand how modulus work: http://jsfiddle.net/elazar170/7hhnagrj

    The modulus function works something like this:

         function modulus(x,y){
           var m = Math.floor(x / y);
           var r = m * y;
           return x - r;
         }
    
    0 讨论(0)
提交回复
热议问题