如何在C中找到除法的余数?

如何在C中找到除法的余数?,c,division,C,Division,找出两个数的除法是否返回余数的最佳方法是什么? 例如,我有一个值为{3,5,7,8,9,17,19}的数组。现在我需要从上面的数组中找到51的完美除数。有没有更简单的方法来解决这个问题?使用模运算符%,它会返回余数 int a = 5; int b = 3; if (a % b != 0) { printf("The remainder is: %i", a%b); } 您可以使用%运算符查找除法的余数,并将结果与0进行比较 例如: if (number % divisor == 0)

找出两个数的除法是否返回余数的最佳方法是什么?
例如,我有一个值为{3,5,7,8,9,17,19}的数组。现在我需要从上面的数组中找到51的完美除数。有没有更简单的方法来解决这个问题?

使用模运算符
%
,它会返回余数

int a = 5;
int b = 3;

if (a % b != 0) {
   printf("The remainder is: %i", a%b);
}

您可以使用
%
运算符查找除法的余数,并将结果与
0
进行比较

例如:

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

以上所有答案都是正确的。仅提供数据集以查找完美除数:

#include <stdio.h>

int main() 
{

int arr[7] = {3,5,7,8,9,17,19};
int j = 51;
int i = 0;

for (i=0 ; i < 7; i++) {
    if (j % arr[i] == 0)
        printf("%d is the perfect divisor of %d\n", arr[i], j);
}

return 0;
}
#包括
int main()
{
int-arr[7]={3,5,7,8,9,17,19};
int j=51;
int i=0;
对于(i=0;i<7;i++){
如果(j%arr[i]==0)
printf(“%d是%d\n”的完美除数,arr[i],j);
}
返回0;
}

@Joey-你为什么删除这个例子?我没有;我刚刚纠正了一个拼写错误,加上了操作员标志。可能是同步编辑在这里发生了冲突。所以在这一点上比MediaWiki还要差。也就是说,当我编辑它时,我只看到了一句话,也没有收到关于同时修改的通知。对不起/我的道歉。。。我以为你对我的例子有些问题。。。谢谢!但是它倒过来了?例如:12%8=4,应该是这样的。但是11%8=3,当它应该等于5时。@MarcusJ-
11%8
等于3,而不是5。由于
11=(8*1)+3
,我发现范围
{3,5,7,8,9,17,19}
相当可疑。看起来你在使用素数,但8不是素数,11和13不见了……OP应该澄清在这些情况下3或9是否应该被视为完美除数。我假设为9,因为否则它在数组中没有意义。在这种情况下,你需要以相反的顺序循环。对于负数,模和提醒是不同的:很好,但我看不出这会如何改变对完美除法的检查。关于这个问题,答案很好,但C对于%,模和余数运算符之间的关系非常模糊,你的陈述有点不准确,所以我只是添加了一个链接来澄清这一点。