我在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。