写一个判别素数的函数,在主函数输入一个整数,输出是否素数的信息。 本程序应当准备以下测试数据:17,34,2,1,0。分别运行并检查结果是否正确。要求所编写的程序,主函数的位置在其他函数之前,在主函数中对其所调用的函数作声明。进行以下工作: ①输入自己编写的程序,编译和运行程序,分析结果。 ②主函数的函数声明删掉,再进行编译,分析编译结果。 ③主函数的位置改为在其他函数之后,在主函数中不含函数声明。 ④保留判别素数的函数,修改主函数,要求实现输出100~200之间的素数。
时间: 2024-03-08 15:48:33 浏览: 75
函数声明:
```c
#include <stdio.h>
#include <stdbool.h>
bool isPrime(int num);
```
判断素数的函数:
```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;
}
```
主函数:
```c
int main() {
int num;
printf("请输入一个整数:");
scanf("%d", &num);
if (isPrime(num)) {
printf("%d是素数。\n", num);
} else {
printf("%d不是素数。\n", num);
}
return 0;
}
```
测试结果:
输入17,输出17是素数。
输入34,输出34不是素数。
输入2,输出2是素数。
输入1,输出1不是素数。
输入0,输出0不是素数。
分析结果:程序功能正常。
删除主函数的函数声明,编译结果如下:
```
warning: implicit declaration of function 'isPrime' is invalid in C99 [-Wimplicit-function-declaration]
```
编译时出现了警告,因为没有对 isPrime 函数进行声明。
将主函数位置改为在其他函数之后,并且不含函数声明,编译结果如下:
```
error: use of undeclared identifier 'isPrime'
```
编译错误,因为在使用 isPrime 函数之前没有进行声明。
保留判别素数的函数,修改主函数,输出100~200之间的素数。
```c
int main() {
for (int i = 100; i <= 200; i++) {
if (isPrime(i)) {
printf("%d ", i);
}
}
printf("\n");
return 0;
}
```
输出结果:
```
101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199
```
分析结果:程序功能正常。
阅读全文