微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

简单的 for 循环突然使 C 中的程序崩溃

如何解决简单的 for 循环突然使 C 中的程序崩溃

我正在通过

使用 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;
}

但是当我从命令行运行它时,它只是暂停然后崩溃,只打印“Hello”。我不知道出了什么问题,因为它似乎没有错误

解决方法

i == 0 时,您执行数学 60 % 0 触发除以零。这会触发未定义的行为,这通常会使您的程序崩溃。

,

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

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

这不会提供任何错误。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。