求 完数#include<iostream>using namespace std;int sum=0;int a;int main(){for(int a=1;a<=1000;a++){for(int i=1;i<=a;i++)if(a%i)continue;sum=sum+i;if(a!=sum)continue;cout<<a<<endl;system("pause");}}编译后提示 这行" sum=sum+i; "name lookup of `i' changed for new ISO `for' scoping using obsolete binding at `i' 是什么意思我错在哪? 应该怎么改? 为什么?
1 回答
一只甜甜圈
TA贡献1836条经验 获得超5个赞
在程序开始时你已经定义过a了,然后在for循环里又再一次定义
#include<iostream>
using namespace std;
/*写的是C风格的代码*/
int main()
{
int sum;
int i,j;
for( i = 2 ; i <= 1000 ; i++ )//1不是完数,不必判断
{
sum=0;//初始化sum=0
for( j = 1 ; j <= i/2+1 ; j++)
{
if( 0 == i%j )
{
sum=sum+j;
}
}
if( i ==sum )
{
cout<<i<<endl;
}
//system("pause");/*不知道你这句话要干嘛,不懂加在哪合适?*/
}
return 0;
}
百度百科里有关于完数的介绍,你可以去看下,要学会自己在网上找资料,不要一味的不懂就问。应该尝试自己解决。
- 1 回答
- 0 关注
- 641 浏览
添加回答
举报
0/150
提交
取消