如何检查/运算符在C中是否没有余数?

时间:2013-07-23 12:59:22

标签: c operator-keyword

我想检查if /运算符是否没有余数:

int x = 0;    
if (x = 16 / 4), if there is no remainder: 
   then  x = x - 1;
if (x = 16 / 5), if remainder is not zero:
   then  x = x + 1;

如何检查C中是否有余数?和
如何实现呢?

6 个答案:

答案 0 :(得分:7)

首先,你需要%余数运算符:

if (x = 16 % 4){
     printf("remainder in X");
}

注意:它不适用于float / double,在这种情况下,您需要使用fmod (double numer, double denom);

其次,按照您的意愿实施它:

  1. if (x = 16 / 4),如果没有余数,x = x - 1;
  2. If (x = 16 / 5),然后x = x + 1;
  3. 使用,逗号运算符,您可以按照以下步骤执行此操作(读取注释):

    int main(){
      int x = 0,   // Quotient.
          n = 16,  // Numerator
          d = 4;   // Denominator
                   // Remainder is not saved
      if(x = n / d, n % d) // == x = n / d; if(n % d)
        printf("Remainder not zero, x + 1 = %d", (x + 1));
      else
        printf("Remainder is zero,  x - 1 = %d", (x - 1));
      return 1;
    } 
    

    检查工作代码@codepade:firstsecondthird
    请注意if-condition我使用逗号运算符:,,以理解,运算符读取:comma operator with an example

答案 1 :(得分:3)

使用%运算符查找除法的余数

if (number % divisor == 0)
{
//code for perfect divisor
}
else
{
//the number doesn't divide perfectly by divisor
}

答案 2 :(得分:2)

如果要查找整数除法的余数,则可以使用模数(%):

if( 16 % 4 == 0 )
{
   x = x - 1 ;
}
else
{
   x = x +1 ;
}

答案 3 :(得分:0)

为此目的使用 modulous operator

if(x%y == 0)然后没有余数。

在除法运算中,如果结果是浮点数,则只返回整数部分,并且将丢弃小数部分。

答案 4 :(得分:0)

您可以使用Modulous operator来处理余数。

答案 5 :(得分:0)

模数运算符(由C中的%符号表示)计算余数。所以:

x = 16 % 4;

x将为0.

X = 16 % 5;

x将为1