完成后,该程序将输出所有素数高达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;
}
如果有人能够解释为什么代码不能正常工作,我将非常感激。谢谢。
答案 0 :(得分:0)
您的代码为我带来了很多错误。
main.cpp | 48 |错误:函数参数太少&#39; int prime_output(int)&#39; |
您已将prime_output
声明为int prime_output(int value)
,但您会立即使用本地变量value
隐藏参数value
。你也可以删除参数,它对你没有任何帮助。
main.cpp | 52 |错误:函数参数太少&#39; int perfect_output(int)&#39; |
与上述相同的问题。看起来您似乎正在尝试直接修改参数,这是一个不可行的方法。尝试使用参考:
int perfect_output(int& value)
虽然函数本身很奇怪。您不输出任何内容或进行任何计算。我觉得你可能还没写完这篇文章。
main.cpp ||在函数&#39; void user_selection()&#39;:|
main.cpp | 59 |错误:在此之前不允许使用函数定义&#39; {&#39;令牌|
这可能是您收到问题提到的错误的地方。您的格式化使得很难直接看到它;幸运的是Code :: Blocks告诉我问题所在。
void user_selection()
{
你永远不会关闭它。 (更确切地说,你的右大括号一直在文件的末尾,它会触发另一个不匹配错误。)
main.cpp | 87 |错误:在&#39;}&#39;之前的预期声明令牌|
见上文。这是以某种方式从user_selection
分离的结束括号。尝试对代码格式更加小心;你越容易阅读它,你就越容易在编译器之前看到这样的东西。
main.cpp | 63 |错误:在&#39;&lt;&#39;之前预期的primary-expression令牌|
您的if语句格式奇怪。像这样将= <
更改为<=
:
for (i = 2; i <= 1000; i++)//if numbers are 1 off, make i = 1.