程序1:#include<iostream>
using namespace std;
int main()
{int i,a,b;
for(i=2;i<=1000;i++)
{b=0;
for(a=1;a<=i/2;a++)
if(i%a==0)
b=b+a;
if(b==i)
{cout<<i<<",its factor are ";
for(a=1;a<=i/2;a++)
if(i%a==0)
cout<<a<<" ";
cout<<endl;
}
}
return 0;
}
程序2:#include<iostream>
using namespace std;
int main()
{int i,a,b=0;
for(i=2;i<=1000;i++)
{
for(a=1;a<=i/2;a++)
if(i%a==0)
b=b+a;
if(b==i)
{cout<<i<<",its factor are ";
for(a=1;a<=i/2;a++)
if(i%a==0)
cout<<a<<" ";
cout<<endl;
}
}
return 0;
}
为什么b的赋值位置不同,1程序有输出,而2程序没有屏幕输出呢?
c++完数编译
答案:1 悬赏:70 手机版
解决时间 2021-07-31 07:07
- 提问者网友:遮云壑
- 2021-07-30 22:30
最佳答案
- 五星知识达人网友:末日狂欢
- 2021-07-30 22:50
因为第一个中随着循环不断地增加,而第二个中每循环一次,b又被重新赋值为零,因此没有输出
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯