-3

我编写了一个示例程序来计算两个数字的 gcd。这里是:

#include stdio.h

int main(void) {
    int m, n, rem;

    printf("Enter two numbers consecutively(with a space between them): ");
    scanf("%d %d", &m, &n);

    while (m) {
        n = m % n; //problem here 
        n = rem;
    }

    printf("%d is the GCD", rem);

    return 0;
}          

我认为我应该将模运算符语句的输出存储在 rem 中,但到目前为止我的程序没有响应任何给定的输入。有人可以给我一个线索。

4

3 回答 3

2

有人可以给我一个线索。

对于初学者来说,您不会m在循环内部进行更改,因此它无法结束。

于 2013-02-10T11:52:38.950 回答
1

有人可以给我一个线索

rem未设置初始值,您尝试n在循环中更改两次的值。

于 2013-02-10T11:59:36.430 回答
0

如果您写出如何在计算机程序的上下文之外但使用变量手动使用欧几里得算法,这可能是一个好主意。反正:

    n = m % n; //problem here 
    n = rem;

这将如何完成任何事情?你说“n = 一件事”,然后是“n = 另一件事”,但在此期间你什么也没做。

于 2013-02-10T12:01:16.997 回答