使用用户定义的函数

时间:2017-12-07 15:12:35

标签: c++ floating-point-exceptions

我必须编写一个程序,在用户给出的特定范围内检查“完美数字”。我创建了一个用户定义的函数来检查特定的数字是否是一个完美的数字。如果是,则返回1,如果不是则返回0.然后我使用if语句在主程序中打印出完美的数字。我得到的问题是浮点异常错误。我不知道现在该做什么。我真的很感激一些帮助。 :)

#include <iostream>
using namespace std;

int isPerfect(int n);

int main(){
    int num=0,perfectCheck=0;
    cout<<"Enter a value for N: ";
    cin>>num;
    cout<<"Perect numbers between 1 and "<<num<<" are : "<<endl;
    for(int i;i<=num;i++){
        perfectCheck=isPerfect(i);
        if(perfectCheck==1){
              cout<<i<<endl;
        }   
    }
    return 0;
}

int isPerfect(int n){
    int sum,mod;
    for(int i;i<n;i++){
        mod=n%i;
        if(mod==0){
            sum=sum+i;
        }
    }
    if(sum==n){
         return 1;
    }
    else{
        return 0;
    }
}

1 个答案:

答案 0 :(得分:1)

isPerfect函数中的for循环应该从1开始,因为n%0是未定义的行为。