写一个判断素数的函数,在主函数输入一个整数,输出是否为素数的信息。要求:本程序应当准备以下测试数据:17、34、2、1、0。分别运行并检查结果是否正确。要求所编写的程序,主程序的位置在其他函数之前,在主函数中,对其所调用的函数做声明进行以下工作:(1)输入自己编写的程序,编译和运行程序分析结果。(2)将主函数的函数声明删掉再进行编译,分析编译结果。(3)将主函数的位置改为在其他函数之后,在主函数中不含函数声明。(4)保留判别素数的函数,修改主函数,要求实现输出100到200之间的素数。
时间: 2024-02-27 17:57:15 浏览: 58
c语言:实现一个函数,判断一个数是不是素数
5星 · 资源好评率100%
以下是一个判断素数的函数 is_prime() 的实现,以及符合要求的主函数实现:
```c
#include <stdio.h>
#include <stdbool.h>
bool is_prime(int num) {
if (num < 2) {
return false;
}
for (int i = 2; i < num; i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
int main() {
int test_nums[5] = {17, 34, 2, 1, 0};
for (int i = 0; i < 5; i++) {
if (is_prime(test_nums[i])) {
printf("%d is a prime number.\n", test_nums[i]);
} else {
printf("%d is not a prime number.\n", test_nums[i]);
}
}
printf("\n");
for (int i = 100; i <= 200; i++) {
if (is_prime(i)) {
printf("%d is a prime number.\n", i);
}
}
return 0;
}
```
程序中,is_prime() 函数接收一个整数参数 num,并返回一个布尔值,表示 num 是否为素数。在主函数中,我们先定义了一个整型数组 test_nums,包含了 5 个测试用例,然后通过 for 循环依次调用 is_prime() 函数,并输出测试结果。接下来,我们使用 for 循环输出从 100 到 200 之间的所有素数,如果一个数是素数,就输出它的值。
在编译和运行程序之前,我们需要对主函数中使用的 is_prime() 函数做声明。因此,我们可以在程序最开始处添加如下代码:
```c
bool is_prime(int num);
```
这段代码表示 is_prime() 函数的声明,告诉编译器我们将在主函数中使用这个函数。接下来,我们可以进行编译和运行程序,检查其输出结果是否符合预期。
接下来,我们将主函数的函数声明删掉,这样程序就没有对 is_prime() 函数的声明了。在编译时,我们会收到一个警告,表示 is_prime() 函数没有被声明过,但是程序仍然可以编译通过。这是因为 C 语言允许函数的隐式声明,即如果一个函数没有被声明过,但是在程序中使用了它,编译器会默认为这个函数做一个声明。虽然这个程序可以编译通过,但是这种做法是不规范的,不建议使用。
接下来,我们将主函数的位置改为在其他函数之后,在主函数中不含函数声明。这样程序在编译时会报错,提示找不到 is_prime() 函数的定义。这是因为在主函数之前没有声明 is_prime() 函数,所以编译器无法找到这个函数的定义。因此,我们需要在主函数之前添加函数声明,告诉编译器我们将在主函数中使用这个函数。
最后,我们保留判别素数的函数,修改主函数,要求实现输出 100 到 200 之间的素数。我们可以使用一个 for 循环,从 100 到 200 遍历所有整数,判断每个整数是否为素数,如果是素数,就输出它的值。
阅读全文