【发布时间】:2021-10-09 03:44:07
【问题描述】:
在下面的for 循环中,代码不起作用并且无法重新初始化 i 的值
int k = 150;
for(int i = 9;i>1;i--)
{
while(k>0)
{
if( k % i == 0)
{
res = res * 10 + i;
k = k/i;
i= 9;
}
}
cout<<res;
但是在这里,当我使用 while 循环时,代码可以正常工作并且 i 的值可以重新初始化
int k= 150;
int res=0;
int i = 9;
while(k>0 && i > 1)
{
if(k % i == 0)
{
res = res * 10 + i;
k = k/i;
i = 9;
}
i--;
}
cout<<res;
【问题讨论】:
-
定义“不起作用”,因为您甚至没有告诉我们代码应该做什么。定义“无法重新初始化”,因为
i= 9;肯定会将i设置回 9。请提供该信息以及确切的预期结果与实际结果。 -
@kaylum 代码提取给定数 k 的因数,并用这些因数生成一个新数。数字存储在 res.
-
该信息属于问题而不属于 cmets。请edit帖子添加。而且您还没有解释“不起作用”是什么意思。
标签: c++ for-loop while-loop