![]() |
#2
zklhp2012-08-23 23:25
|
先给大家一个正确的程序,但是为什么改成bool变量后运行错误呢?

#include <iostream>
using namespace std;
int perfect(int); //改为bool perfect(int);
int main()
{
int number;
cout<<"此程序将输出1000之内的所有完数:"<<endl;
for(number=1;number<=10;number++)
{ perfect(number); //改为if(perfect(number)) cout<<number;
}
return 0;
}
int perfect(int m )
{
int i;
int t=0;
for(i=1;i<m;i++)
{
if(m%i==0)
t=t+i;
} //为什么用bool变量就错了呢?,例如,若t==m,return true,然后在主函数中修改一下
if(t==m)
cout<<m<<endl;
return 0;
}
using namespace std;
int perfect(int); //改为bool perfect(int);
int main()
{
int number;
cout<<"此程序将输出1000之内的所有完数:"<<endl;
for(number=1;number<=10;number++)
{ perfect(number); //改为if(perfect(number)) cout<<number;
}
return 0;
}
int perfect(int m )
{
int i;
int t=0;
for(i=1;i<m;i++)
{
if(m%i==0)
t=t+i;
} //为什么用bool变量就错了呢?,例如,若t==m,return true,然后在主函数中修改一下
if(t==m)
cout<<m<<endl;
return 0;
}
程序的运行结果
只有本站会员才能查看附件,请 登录
改为bool变量后运行结果只有本站会员才能查看附件,请 登录
为什么会出现这种情况呢?求解