检查X是否可以被Y整除,即没有余数

时间:2017-06-16 04:55:31

标签: c

我试图编写一个程序,从用户(a和b)获取数字  程序将从1计数到x(即a)并输出每次迭代中的数字是否可被y整除(即b)。

    //while loop deciding if a is divided by b
    for (count = 1; count <= a; count++) {
        if (a / b == 0) {
            printf("%d is divisible by %d\n", a, b);
        } 
        else if (a / b != 0) {
            printf("%d is not divisible by %d\n", a, b);
        }
    }
   return 0 ;
} 

但是当我为a输入10而b输入2时,输出为

10 is not divisible by 2
十次

如何更改代码以便检查每次迭代?

4 个答案:

答案 0 :(得分:3)

首先 - a / b告知a可以按b分多少次,例如9 / 24会给你a % b == 0

要知道该部门是否产生提醒,您必须使用9 % 2。示例:1会在8 % 2给您0时为您提供a

下一步 - 您继续使用bcount进行循环内的计算。您需要使用a代替printf。这同样适用于else

并且 - for (count = 1; count <= a; count++) { if (count % b == 0) { printf("%d is divisible by %d\n", count, b); } else { printf("%d is not divisible by %d\n", count, b); } } 部分不需要条件。

尝试类似:

{{1}}

答案 1 :(得分:1)

#include <stdio.h>
int main()
{
    int a;
    printf("Enter a 2-digit number: ");
    scanf("%d",&a);
    for (int i = 0; i < a; i++)
    {
        if (i%2 == 0)
        {
            printf("\n%d is even.", i);
        }
        else if (i%2 != 0)
        {
            printf("\n%d is odd.",i);
        }
        
        
    }
    
    return 0;
}

这是检查数字是偶数还是奇数的代码。

答案 2 :(得分:0)

您的程序有两个逻辑错误 -

  • 您正在运行for循环,以便从1转到a,但在循环内的任何位置都没有使用循环变量count
  • a/b == 0不能用于检查b是否划分a,而是使用a%b == 0%是模运算符,当a除以b时返回余数 正确的代码 -

    for (count = 1; count <= a; count++) {
       if (count%b == 0) {
          printf("%d is divisible by %d\n", count, b);
       } 
       else {
           printf("%d is not divisible by %d\n", count, b);
       }
    }
    

答案 3 :(得分:-1)

每次迭代都使用相同的值,然后您可以使用count变量和最后的变量打印值。 你可以这样写,

for (count = 1; count <= a; count++)
    {
            if (count % b == 0)
            {
                    printf("%d is divisible by %d\n", a, b);
                    n += 1;
            }
    }
    printf("count : %d\n",n);

它会显示计数。