【发布时间】:2021-05-18 20:49:25
【问题描述】:
int main ()
{
int num, i=num, isPrime;
printf("Enter an integer: ");
scanf("%d", &num);
while (i>=2)
{
if (num%i!=0)
i--;
if (num%i==0) //check if it is a factor
{
isPrime = 1;
for (int j=2; j<=i; j++)
{
if (i%j==0)
{
isPrime = 0;
break;
}
}
if (isPrime==1)
{
printf("%d ", i);
num = num/i;
}
}
}
return 0;
}
我可以知道为什么我的代码不起作用吗? 我正在尝试编写一个 C 代码,它打印给定数字的所有素因子,从最大因子到最小因子,当我运行它时,我输入一个数字后什么都不显示。
【问题讨论】:
-
尝试在调试器中打开代码,逐行检查变量的值。
-
"May I know why is my code not working?"-- 您是否尝试过在调试器中逐行运行代码,同时监视所有变量的值,以确定您的程序在什么时候停止按预期运行?如果您没有尝试过,那么您可能想阅读以下内容:What is a debugger and how can it help me diagnose problems? 您可能还想阅读以下内容:How to debug small programs?。 -
ashersm 如果输入小于 2,预期输出是什么?没有?
标签: prime-factoring