-4

我需要制作一个程序,将用户编号传递给 bool 函数,如果该数字是否为质数,该函数将返回bool响应,然后如果该数字是否为质数,则让程序显示。这就是我所拥有的,我完全被困住了。

#include <iostream>
#include <stdlib.h>
#include <math.h>
using namespace std;

//Declare return function
bool isPrime(int);


//Declare constant
const int PRIME=2;

int main()
{
    //Declare local variable to store user number
    int user_num;
    //Declare local variable to store result
    bool result;
    //Declare variable to hold return
    bool status;

    //Request number from user
    cout << "Please enter a number" << endl;
    cin >> user_num;

    //Call function isPrime
    bool isPrime(int user_num);

    if (status==true)
        cout << user_num << "is prime" << endl;
    else
        cout << user_num << "is not prime" << endl;

    system ("PAUSE");
    return 0;

} //end main

//Define bool function
bool isPrime(int number)
{
    bool status;

    double num_1=sqrt(number);

    for (int i=2;i<=num_1;++i)
        if(!(number%i))
            status=false;
        else
            status=true;
    return status;

}//End bool function      
4

2 回答 2

1

改变

bool isPrime(int user_num);

读书

status = isPrime(user_num);

你在那里做的是声明函数而不是调用它。

您需要将函数移到主函数上方,或者实际添加

bool isPrime(int user_num); 

在主函数上方或在调用该函数之前。

于 2013-06-27T04:42:25.150 回答
0

您还需要考虑 isPrime 中的循环。如果找到除数,则立即返回 false。目前,您将多次覆盖您的结果变量,并且只返回最终测试。

于 2013-06-27T04:45:14.860 回答