首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

一个求完全数的程序,真没看出来错哪了,可是运行不对

2013-04-20 
一个求完全数的程序,真没看出来哪里错了,可是运行不对#includeiostreamusing namespace stdbool perfec

一个求完全数的程序,真没看出来哪里错了,可是运行不对

#include<iostream>
using namespace std;

bool perfect(int num)
{
int sum=0;
for(int i=1;i<=num/2;i++)//先前错误:for(int i=0;)会引起程序错误。
{
if(num%i==0)
{
sum+=i;
}
}
if(sum==num)
return true;
else
return false;
}

void main()
{
int n;
cin>>n;
if(perfect(n))
cout<<"是完全数"<<endl;
else
cout<<"不是完全数"<<endl;
cout<<"范围内完全数是:";
for(int i=1;i<=n;i++)
{
if(perfect(i));
{
cout<<i<<" ";
}
}
}


运行之后,输出范围内完全数是那里。。 例如n=6,结果就输出了123456.。。 不应该啊。。 实在没看出来那里错了。。求解,谢谢!!
[解决办法]

if(perfect(i));//这里多了个分号

[解决办法]

cout<<"范围内完全数是:";
    for(int i=1;i<=n;i++)
    {
        if(perfect(i));  //这里你多了个;
        {
            cout<<i<<" ";
        }
    }

热点排行