C Standard Library

C <math.h> - remquo() Function



The C <math.h> remquo() function returns the floating-point remainder of x/y (rounded to nearest integer). The function additionally stores the quotient internally which used to determine the result. This can be mathematically expressed as below:

remainder = x - quotient * y

Where quotient is the result of x/y rounded towards nearest integer (with halfway cases rounded toward the even number).

Note: The remainder function is similar to the remquo function except it does not stores quotient internally.

Syntax

double remquo (double x, double y, int* q);
float remquof (float x, float y, int* q);
long double remquol (long double x, long double y, int* q);               

Parameters

x Specify the value of numerator.
y Specify the value of denominator.
q Specify the pointer to the quotient calculated internally and used to determine the remainder.

Return Value

Returns remainder of x/y. If the remainder is zero, its sign will be same as that of x and value stored in quotient will be unspecified. If y is zero, the function may either return zero or cause a domain error (depending on the library implementation).

Example:

In the example below, remquo() function is used to find out the remainder and quotient of a given division.

#include <stdio.h>
#include <math.h>
 
int main (){
  double x, y;
  int q;
  x = 23;
  y = 4;

  double result = remquo(x, y, &q);
  
  printf("numerator = %lf\n", x);
  printf("denominator = %lf\n", y);
  printf("remainder = %lf\n", result);
  printf("quotient = %i\n", q);
 
  return 0;
}

The output of the above code will be:

numerator = 23.000000
denominator = 4.000000
remainder = -1.000000
quotient = 6

❮ C <math.h> Library