带有嵌套for循环的简单C程序在windows powershell中停止工作



我在powershell中成功编译了一个简单的C代码,问题是每当我输入一个数字,使我为要运行的for循环设置的条件得到满足时,程序就会停止工作(出现windows 10对话框,通知我它正试图找到解决问题的解决方案)

此外,我在windows 10中使用powershell(x86)控制台编译了代码,这可能导致了问题吗?

#include <stdio.h>
int main(){
    int x, y, j, i, foo;
    int count = 0, prim[1000];
    printf("Enter number: ");
    scanf("%d", &x);
for(y = 1; y < x; y++){
    for(j = 1; j <= y; j++){
        foo = j - 1;
        if (y % foo  == 0){
            count++;        
        }   
      }
    printf("%d", count);
  }
}

for(j = 1; j <= y; j++){ foo = j - 1; if (y % foo == 0){->y % 0-->未定义的行为。

/运算符的结果是第一个操作数除以第二个操作数的商;%运算符的结果是余数。在这两种操作中,如果第二个操作数的值为零,则行为未定义C11dr§6.5.5 5

不要那样做。

尝试使用#include<conio.h>和aslo getch();在上次使用printf之后。如果这不起作用,那么您使用的编译器应该有问题。

您的程序失败,因为在内部循环的第一次迭代中foo==0。

最新更新