-4

找到 Stroustrups 初学者书籍 Ch4Ex15 的这个答案,问题是找到前 n 个素数:

#include "std_lib_facilities.h"

bool prime (vector<int> table, int number) {
    for (int i = 0; i < table.size(); ++i)
        if (number%table[i] == 0) return false;
    return true;
}

int main () {
    int count, next;
    cout << "Input the number of primes\n";
    cin >> count;
    vector<int> table;
    next = 2;
    while (table.size() < count) {
        if (prime(table,next)) table.push_back(next);
        ++next;
    }
    for (int n = 0; n < table.size(); ++n)
        cout << table[n] << " ";
    cout << endl;

    // keep_window_open();
    return 0;
}

我很难理解的两件事:

  1. 为什么顶部有一段代码在int main之外,是在int main之后执行的吗?
  2. 这些语句是如何工作的(它们是双重条件吗?) bool prime (vector<int> table, int number)if (prime(table,next))

谢谢,肖恩

4

1 回答 1

-1

您要问的事情对于 C 和 C++ 语言来说是非常基础的。通读任何优秀的 C++ 教科书的前 2-3 章都会为您解答这些问题。

示例代码定义了2 个函数:primemain.

  1. 外面的代码是main函数的定义prime。它在那里定义(创建)供您稍后在main函数中调用。
  2. 这是两个不同的东西。您提到的第一件事是函数的定义,prime第二件事是对该函数的调用
于 2018-07-14T10:52:03.430 回答