这个程序用bool变量为设么运行错误?
这是一个求完数的程序先给大家一个正确的程序,但是为什么改成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; }
程序的运行结果 改为bool变量后运行结果 为什么会出现这种情况呢?求解