c++新手问题

求完数#include<iostream>usingnamespacestd;intsum=0;inta;intmain(){for(inta=1;a<=1000;a++... 求 完数
#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'
是什么意思

我错在哪? 应该怎么改? 为什么?
展开
 我来答
a652639
推荐于2016-11-04 · 超过23用户采纳过TA的回答
知道答主
回答量:83
采纳率:0%
帮助的人:47.1万
展开全部
在程序开始时你已经定义过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;
}

百度百科里有关于完数的介绍,你可以去看下,要学会自己在网上找资料,不要一味的不懂就问。应该尝试自己解决。
zdw369005440
推荐于2018-05-17
知道答主
回答量:2
采纳率:0%
帮助的人:3494
展开全部
for(int i=1;i<=a;i++)
if(a%i)continue;
sum=sum+i;
if(a!=sum)continue;
cout<<a<<endl;
system("pause");
}

少了一个大括号
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xukexuan1990
2010-10-15 · 贡献了超过101个回答
知道答主
回答量:101
采纳率:0%
帮助的人:0
展开全部
bai du 完数,c++,,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式