Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C语言中的SimpleFor循环突然崩溃程序_C_Loops_Modulo - Fatal编程技术网

C语言中的SimpleFor循环突然崩溃程序

C语言中的SimpleFor循环突然崩溃程序,c,loops,modulo,C,Loops,Modulo,我正在使用MSVC通过 cl file.c 使用以下非常简单的代码: #include <stdio.h> #include <stdlib.h> int main(void) { int num = 50, pointNum = 60, max = 0; puts("Hello"); for (int i = 0; i <= num; i++) { printf(&quo

我正在使用MSVC通过

cl file.c
使用以下非常简单的代码:

#include <stdio.h>
#include <stdlib.h>
    
int
main(void) {
    
    int num = 50, pointNum = 60, max = 0;
    
    puts("Hello");

    for (int i = 0; i <= num; i++) {
        printf("%d\n", pointNum % i);
    }

    return 0;
}
#包括
#包括
int
主(空){
int num=50,pointNum=60,max=0;
放置(“你好”);

对于(int i=0;i当
i==0
时,您执行数学
60%0
,它会触发被零除。这会触发未定义的行为,这通常会使程序崩溃。

在循环的第一次迭代中,除数是0。但是被0除是不可能的。因此,它只是崩溃。我认为不是这个代码片段你应该使用

for (int i = 1; i <= num; i++) {
    printf("%d\n", pointNum % i);
}

for(int i=1;我能告诉你为什么你认为它崩溃了吗?它会在屏幕上打印一些文本吗?如果会,你能分享这些文本吗?@BillLynch我不知道它为什么会崩溃。它只打印“Hello”(put语句),但在循环中暂停,然后崩溃。对,它什么也不打印吗?它会打印字符串“segmentation fault”?它是否打印字符串“嗨,我崩溃了!”?@BillLynch它没有打印字符串分段错误,可能是因为我只是使用记事本++和命令行。所以我没有任何线索。你以
I
等于
0
开始一个循环,然后你在循环中做的第一件事就是除以
I
…所以你是除以零…它不是那么无错误。它会导致未定义的behaviour-任何其他结果也是可能的