【发布时间】:2016-08-10 21:17:35
【问题描述】:
完成后,该程序将输出最多 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;
}
如果有人能解释为什么代码不起作用,我将不胜感激。谢谢你。
【问题讨论】:
-
您声明/定义
int prime_output(int value);,但将其用作prime_output();。值应该是局部变量,而不是参数。 -
修正你的缩进,你会看到
void user_selection()没有结束}。 -
离题:在网络上搜索“埃拉托色尼筛”
-
在
main()中,void user_selection();只是一个(本地范围的)函数原型,因此它实际上并没有调用该函数。你需要把它改成user_selection();(去掉void)。
标签: c++ visual-studio syntax visual-studio-2015 syntax-error