c - 读取 2 个整数是否是倍数

标签 c integer

所以我正在尝试自学 C,我拿起了几位教授向我推荐的一本教科书,我正在研究示例,但他们没有答案,我遇到了一个问题。

问题: (倍数)编写一个程序,读取两个整数,并确定并打印第一个整数是否为整数 是秒的倍数。 [提示:使用余数运算符。]

    #include <stdio.h>

int main(void)
{
    int num1, num2;

    printf("Enter two integers: ");
    scanf("%d%d", &num1, &num2);

    if((num2 % num1) == 0);
    {
        printf("%d and %d are multiples of each other\n",num1, num2);
    }

    if((num1 % num2) != 0);
    {
        printf("%d and %d are not multiples of each other\n",num1, num2);
    }

    return 0;
}

当我运行程序时,我用 2 和 5 来测试它,它们不是彼此的倍数,但是程序打印了这两个语句。谁能告诉我我做错了什么或者我错过了什么?本书的这一章仅包含 if 语句,没有其他类型。谢谢!

最佳答案

  1. 每个if末尾都有杂散;,因此{}<中的位总是运行。你的编译器没有警告你“空if”吗?如果没有,请打开警告。

  2. 您的 if 条件并不相互排斥。使用 if else 代替。

关于c - 读取 2 个整数是否是倍数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54575734/

相关文章:

c - 保存然后打印出 C 中二维数组中的字符串

c - 对于定义为 0 的宏,#ifdef 和 #if 之间的细微差别

c - C 编程中数组的奇怪输出

c - 使用 syslog 报告信息

c++ - Visual C++::'malloc' 中的奇怪错误:函数不带 1 个参数

haskell - Haskell 中一般序数的标准化库/数据类型

Java:将整数拆分为 2 个字节,然后将它们再次组合成一个整数

c - 如何从标准输入确定二维数组的高度和长度?

java - 是否可以将整数值字符串转换为 3 x 3 数组?

java - operator == 包装类对象的不同行为