这是一道c语言的题,关于分解质因数,我的代码总是死循环,大神能帮我看看吗?

如题所述

orbitingflea说的是正确的。

#include <stdio.h>
void main()
{
int a,b,i,j,k;
printf("输入区间的上下边界:  ");
scanf("%d,%d",&a,&b);
for(i=a;i<=b;i++)
{
k=i;
printf("\n%d=",i);
for(j=2;j<=k;j++)
{
while(k!=j)
{
if(k%j==0)
{
printf("%d*",j);
k=k/j;
}
else break;
}
}
printf("%d\n",k);
}
}

运行示例:

增加一个参数k,将i的值赋给k,就可以了。调试通过。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-01-19
您在求质因数的时候i=i/j语句修改了i的值,导致i的循环死循环;请在求质因数的时候把i复制一份(例如i2),修改i2的值。
相似回答