c语言编写函数判断素数。在主函数中把20以内素数保存到文件中,然后使用fscanf()读取文件内容,打印在屏幕上。
时间: 2024-12-16 18:14:45 浏览: 6
上机考试习题集—C语言(南开100最简可打印版).pdf
在C语言中,你可以编写一个函数`is_prime`来判断一个整数是否是素数。素数是指大于1的自然数,除了1和它本身以外不再有其他因数。以下是实现这个功能的基本步骤:
```c
#include <stdio.h>
#include <stdbool.h>
// 判断是否为素数的函数
bool is_prime(int num) {
if (num <= 1)
return false;
for (int i = 2; i * i <= num; i++) {
if (num % i == 0)
return false;
}
return true;
}
// 主函数
int main() {
FILE* file = fopen("prime_numbers.txt", "w"); // 打开文件用于写入
if (file == NULL) {
printf("Error opening file.\n");
return 1;
}
// 遍历20以内的数字并检查素数
for (int i = 2; i <= 20; i++) {
if (is_prime(i)) {
fprintf(file, "%d\n", i); // 将素数写入文件
}
}
fclose(file); // 关闭文件
// 使用fscanf()从文件中读取并打印素数
FILE* read_file = fopen("prime_numbers.txt", "r");
if (read_file == NULL) {
printf("Error reading file.\n");
return 1;
}
char number[10];
while (fgets(number, sizeof(number), read_file)) {
int prime_num = atoi(number);
printf("%d ", prime_num);
}
fclose(read_file);
return 0;
}
```
在这个程序中,首先在主函数里遍历20以内的数字,对每个数字调用`is_prime`函数,如果是素数就写入文件。之后,打开文件读取内容,并使用`fscanf`将内容转换回整数并打印出来。
阅读全文