in

Operador de módulo (%) en C / C ++ con ejemplos

gfg 200x200 min

los operador de módulo, denotado por %, es un operador aritmético.
El operador de división de módulo produce el recordatorio de una división entera.

Sintaxis: Si xey son números enteros, entonces la expresión:

x % y

produce el resto cuando x se divide por y.

Valor devuelto:

  • Si y divide completamente a x, el resultado de la expresión es 0.
  • Si x no es completamente divisible por y, entonces el resultado será el resto del rango [1, x-1].
  • Si x es 0, entonces la división por cero es un error en tiempo de compilación.

Por ejemplo: Considere el siguiente código:

C ++

#include <iostream>

using namespace std;

int main(void)

{

    

    int x, y;

    

    

    int result;

    x = 3;

    y = 4;

    result = x % y;

    cout << result << endl;

    result = y % x;

    cout << result << endl;

    x = 4;

    y = 2;

    result = x % y;

    cout<<result;

    return 0;

}

C

#include <stdio.h>

int main(void)

{

    

    int x, y;

    

    

    int result;

    x = 3;

    y = 4;

    result = x % y;

    printf("%d", result);

    result = y % x;

    printf("n%d", result);

    x = 4;

    y = 2;

    result = x % y;

    printf("n%d", result);

    return 0;

}

Restricciones del operador de módulo:
El operador de módulo tiene bastantes restricciones o limitaciones.

  1. El operador% no se puede aplicar a números de punto flotante, es decir, flotante o doble. Si intenta utilizar el operador de módulo con constantes o variables de punto flotante, el compilador producirá un error:

C ++

#include <iostream>

using namespace std;

int main()

{

    

    

    float x, y;

    

    

    float result;

    x = 2.3;

    y = 1.5;

    result = x % y;

    cout << result;

    return 0;

}

C

#include <stdio.h>

int main(void)

{

    

    float x, y;

    

    

    float result;

    x = 2.3;

    y = 1.5;

    result = x % y;

    printf("%f", result);

    return 0;

}

Error de compilación:

Compilation Error in C code :- prog.c: In function 'main':
prog.c:19:16: error:
 invalid operands to binary % (have 'float' and 'float')
     result = x % y;
                ^           

El signo del resultado para el operador de módulo depende de la máquina para los operandos negativos, ya que la acción se realiza como resultado de un desbordamiento o subdesbordamiento.

C ++

#include <iostream>

using namespace std;

int main(void)

{

    

    

    int x, y;

    

    

    int result;

    x = -3;

    y = 4;

    result = x % y;

    cout << result << endl;

    x = 4;

    y = -2;

    result = x % y;

    cout << result << endl;

    x = -3;

    y = -4;

    result = x % y;

    cout << result;

    return 0;

}

C

#include <stdio.h>

int main(void)

{

    

    int x, y;

    

    

    int result;

    x = -3;

    y = 4;

    result = x % y;

    printf("%d", result);

    x = 4;

    y = -2;

    result = x % y;

    printf("n%d", result);

    x = -3;

    y = -4;

    result = x % y;

    printf("n%d", result);

    return 0;

}

Nota: Algunos compiladores pueden mostrar el resultado de la expresión como 1 y otros pueden mostrar -1. Depende del compilador.

¡Atención lector! No dejes de aprender ahora. Obtenga todos los conceptos importantes de DSA con el Curso autodidacta de DSA a un precio asequible para los estudiantes y prepárese para la industria. Para completar su preparación desde el aprendizaje de un idioma hasta DS Algo y muchos más, consulte Curso completo de preparación para entrevistas.

En caso de que desee asistir clases en vivo con expertos, consulte Clases en vivo de DSA para profesionales que trabajan y Programación competitiva en vivo para estudiantes.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

apple touch icon@2

Java String nueva línea

edit

Polinización cruzada vs autopolinización: diferencia y comparación