for循环中的模数无输出

问题描述 投票:0回答:2
#include <stdio.h>

int main() {

    int num = 90;
    for (int x = 0; x <= num; x++) {
        printf("%d", num % x);
    }
    return 0;
}

我的代码似乎什么都没做。

如果我们将 0 除以 90 再除以 90,我希望我的代码打印余数,但我的代码似乎没有做任何事情,请帮忙。 :(

c modulo
2个回答
3
投票

你的程序不打印任何东西,因为它在计算

num % x
x = 0
时在循环的第一次迭代时崩溃。这是
0
的除法,它具有未定义的行为并会在大多数当前系统上停止程序。

1
开始循环以避免这种情况。

还在每个值后输出一个换行符以使输出可读:

#include <stdio.h>

int main(void) {
    int num = 90;
    for (int x = 1; x <= num; x++) {
        printf("%d\n", num % x);
    }
    return 0;
}

1
投票

此代码将导致运行时错误,因为它在循环的第一次迭代中被零除,这在 C 编程语言中是未定义的行为。

#include <stdio.h>
int main() {
    int num = 90;
    for (int x = 1; x <= num; x++) {
        printf("%d", num % x);
    }
    return 0;
}
© www.soinside.com 2019 - 2024. All rights reserved.