输入n(n<10)个整数,统计其中素数的个数。要求程序由两个文件组成,一个文件中编写main函数,另一个文件中编写素数判断的函数。使用文件包含的方式实现。
时间: 2023-08-31 18:41:14 浏览: 78
### 回答1:
首先,我们需要编写素数判断函数,可以新建一个名为 `is_prime.h` 的头文件,在其中编写如下代码:
```c++
#ifndef IS_PRIME_H
#define IS_PRIME_H
bool is_prime(int n);
#endif
```
然后,在 `is_prime.cpp` 文件中实现 `is_prime` 函数:
```c++
#include "is_prime.h"
bool is_prime(int n)
{
if (n <= 1) {
return false;
}
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) {
return false;
}
}
return true;
}
```
接下来,我们需要编写主函数 `main.cpp`。首先,我们需要包含头文件 `is_prime.h`:
```c++
#include "is_prime.h"
#include <iostream>
using namespace std;
```
然后,在主函数中,我们可以先读入 n 个整数,并统计素数的个数:
```c++
int main()
{
int n, count = 0;
cin >> n;
for (int i = 0; i < n; i++) {
int x;
cin >> x;
if (is_prime(x)) {
count++;
}
}
cout << count << endl;
return 0;
}
```
最后,我们需要编写 `makefile` 文件,将两个源文件编译成可执行文件。`makefile` 文件的内容如下:
```makefile
main: main.cpp is_prime.o
g++ -o main main.cpp is_prime.o
is_prime.o: is_prime.cpp is_prime.h
g++ -c is_prime.cpp
clean:
rm -f main is_prime.o
```
现在,我们可以在终端中输入以下命令来编译和运行程序:
```
make
./main
```
然后,我们可以依次输入整数,并查看素数的个数。
### 回答2:
主文件(main.c):
```c
#include <stdio.h>
int isPrime(int number); // 素数判断函数声明
int main() {
int n, number, count = 0;
printf("请输入整数的个数:");
scanf("%d", &n);
printf("请输入%d个整数:\n", n);
for (int i = 0; i < n; i++) {
scanf("%d", &number);
if (isPrime(number)) {
count++;
}
}
printf("其中素数的个数为:%d\n", count);
return 0;
}
```
素数判断函数文件(isPrime.c):
```c
int isPrime(int number) {
if (number <= 1) { // 排除小于等于1的数
return 0;
}
for (int i = 2; i * i <= number; i++) {
if (number % i == 0) { // 若能整除,则不是素数
return 0;
}
}
return 1; // 都不能整除,是素数
}
```
在主文件中通过`#include "isPrime.c"`包含素数判断函数文件,即可使用其中的函数。
### 回答3:
假设两个文件分别为main.cpp和prime.cpp。
prime.cpp文件中编写素数判断的函数,其代码如下所示:
```c++
bool isPrime(int num) {
if (num < 2) {
return false;
}
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
```
main.cpp文件中编写main函数,使用文件包含的方式调用prime.cpp中的素数判断函数。其代码如下所示:
```c++
#include <iostream>
#include "prime.cpp"
int main() {
int n;
int count = 0;
std::cout << "请输入整数的个数:";
std::cin >> n;
std::cout << "请输入" << n << "个整数:" << std::endl;
for (int i = 0; i < n; i++) {
int num;
std::cin >> num;
if (isPrime(num)) {
count++;
}
}
std::cout << "素数的个数为:" << count << std::endl;
return 0;
}
```
通过文件包含的方式,main.cpp文件中可以调用prime.cpp中的`isPrime`函数进行素数判断。首先,程序会询问用户要输入的整数个数,然后依次输入这些整数。每输入一个整数,就调用`isPrime`函数进行素数判断,如果是素数则计数器count加1。最后输出素数的个数。
以上是通过文件包含的方式实现,prime.cpp中的函数会被拷贝到main.cpp中进行编译。这只是一种方式,也可以使用头文件和源文件分别编译的方式实现,即将函数声明放在头文件中,在main.cpp中包含头文件,然后将prime.cpp单独编译成一个目标文件与main.cpp链接。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![cpp](https://img-home.csdnimg.cn/images/20210720083646.png)