我的程序应该从用户输入中获取一个数字,确定它是否为素数,然后如果不是,则输入输入数字5的因子到一行.5到线部分是一切都变得混乱的地方,我写的循环应该可以正常工作,但无论我多么改变它,它会做两件事之一,1)无论是新的还是新的行或第一个因子,或2)输出每个因子5的一行.这是代码:
else
{
cout << "\nNumber is not prime, it's factors are:\n";
for (int x = 2; x < num; x++)
{
factor=num%x;
if (factor==0)
{
int t=0;
cout << x << "\t";
t++;
for (int t; t <= 5; t++) // THE TROUBLE LOOP
{
if(t>=5)
{
t=0;
cout << endl;
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
t因为你t在循环之前声明了,所以替换循环中的声明:
for(; t <= 5; t++)
Run Code Online (Sandbox Code Playgroud)
随着int t在循环声明要覆盖t为未初始化的变量,将有一个垃圾值.
除了这个问题之外,你的循环是无限的,因为只要它等于你就会重置t为. 05