Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 计算素数的小程序不起作用_C++_Visual Studio_Syntax_Visual Studio 2015_Syntax Error - Fatal编程技术网

C++ 计算素数的小程序不起作用

C++ 计算素数的小程序不起作用,c++,visual-studio,syntax,visual-studio-2015,syntax-error,C++,Visual Studio,Syntax,Visual Studio 2015,Syntax Error,完成后,这个程序将输出最大1000个素数,这是一个相当简单的程序,尽管我已经多次阅读语法,但它仍然不起作用 该代码自最初发布以来已被编辑,现在运行时出现0个错误,但它不会显示正确的结果,而是一次又一次地显示008D1389 这是完整的代码: #include <iostream> using namespace std; //funtion prototypes int output_number, number = 1, value = 1, i; bool is_this_n

完成后,这个程序将输出最大1000个素数,这是一个相当简单的程序,尽管我已经多次阅读语法,但它仍然不起作用

该代码自最初发布以来已被编辑,现在运行时出现0个错误,但它不会显示正确的结果,而是一次又一次地显示008D1389

这是完整的代码:

#include <iostream>
using namespace std;
//funtion prototypes
int output_number, number = 1, value = 1,  i;
bool is_this_number_prime(int number_in_question);
bool does_it_have_factors(int numerator, int denominator);
int prime_number_sender();
int prime_number_output();

//function definitions
int prime_number_output()
{
    int value;
    value = prime_number_sender();
    return value;
}
int prime_number_sender()
{
    int value = number;
    if (is_this_number_prime(number) == true)
        return value;
    else
        return 0;

}



bool is_this_number_prime(int number_in_question)
{
    bool answer = true;
    int i;
    for (i = 2; i <= number; i++)
    {
        if (does_it_have_factors(number, i) == true)
            answer = false;
    }
    return answer;
}

bool does_it_have_factors(int numerator, int denominator)
{
        bool result = false;

if (numerator % denominator == 0){
    bool result = true;
}
return result;

}
int main() {

bool is_this_number_prime(int number_in_question);
bool does_it_have_factors(int numerator, int denominator);
int prime_number_sender(int number_in_question);
int prime_number_output();
int output_number = prime_number_output();
int i;
for (i = 2; i <= 1000; i++)
{
    cout << prime_number_output << endl;
    number++;
}
    return 0;


}
#包括
使用名称空间std;
//功能原型
int输出_数,数=1,值=1,i;
布尔是这个素数(问题中的整数);
布尔没有因子(整数分子,整数分母);
整数素数发送器();
整数素数输出();
//函数定义
整数素数输出()
{
int值;
值=素数\发送器();
返回值;
}
整数素数发送器()
{
int值=数字;
如果(这是数字吗?)素数(数字)==true
返回值;
其他的
返回0;
}
布尔是这个素数(问题中的整数)
{
bool-answer=true;
int i;

对于(i=2;i,您的代码为我生成了很多错误

main.cpp | 48 |错误:函数“int prime_output(int)”的参数太少|

您已将
prime\u输出
声明为
int prime\u输出(int-value)
,但立即使用局部变量
value
对参数
value
进行阴影处理。您不妨删除该参数,这对您没有任何好处

main.cpp | 52 |错误:函数“int perfect_output(int)”的参数太少|

与上面的问题相同。但是,看起来您正在尝试直接修改参数,这与您的操作方式不同。请尝试使用引用:

int perfect_output(int& value)
这个函数本身也很奇怪。你没有输出任何东西或做任何计算。我觉得你可能还没有写完

函数“void user_selection()”中的main.cpp:|
main.cpp | 59 |错误:此处不允许在“{”标记之前使用函数定义|

这可能就是你的问题所提到的错误所在。你的格式使你很难直接看到这一点;幸运的是,Code::Blocks告诉我问题出在哪里

void user_selection()
{
您永远不会关闭它。(更准确地说,您的右大括号一直位于文件的末尾,在那里它会触发另一个不匹配错误。)

main.cpp | 87 |错误:应在“}”标记之前声明|

请参见上文。这是以某种方式从
user\u selection
中分离出来的右大括号。请尝试更小心地设置代码格式;您越容易阅读它,就越容易在编译器执行之前看到类似的内容


main.cpp | 63 |错误:在“声明/定义
int prime_输出(int value);
之前应使用主表达式,但将其用作
prime_输出();
。value应该是局部变量,而不是参数。修复缩进,您将看到
void user_selection()
没有结束符
.off-topic:在
main()
void user_selection();
只是一个(局部范围的)函数原型,因此它实际上并不调用函数。您需要将其更改为
user_selection();
(删除
void
)。感谢您的帮助,我已使用上述技术重新设计了程序,问题已编辑为包含新代码。没有错误,这是令人鼓舞的,但程序仍然无法正确运行。我无法识别错误输出,因此我不确定从何处开始故障查找过程。可以吗您看到了这段代码失败的地方??如果您的代码与上面发布的代码相同,我可以看到六个需要修复的地方。但是,我建议您提出一个新问题,因为您的编译错误,这个问题的主题,已经解决了。
for (i = 2; i <= 1000; i++)//if numbers are 1 off, make i = 1.