求 完數#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 關注
- 689 瀏覽
添加回答
舉報
0/150
提交
取消