请用C语言统计各行质数的个数
时间: 2024-10-15 14:15:13 浏览: 29
上海电机学院C语言实训答案
在C语言中,统计文件中每一行质数的个数需要一些数学和字符串处理的知识。首先,你需要遍历文件的每一行,然后检查每个数字是否为质数。这里是一个简单的示例代码片段:
```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 count_primes_in_line(char* line) {
int prime_count = 0;
char* token = strtok(line, " "); // 分割字符串为单词
while (token != NULL) {
int num = atoi(token); // 转换为整数
if (is_prime(num)) prime_count++;
token = strtok(NULL, " ");
}
return prime_count;
}
int main() {
FILE* file = fopen("input.txt", "r"); // 打开文件,假设输入文件名是"input.txt"
if (file == NULL) {
perror("Failed to open file");
return 1;
}
int total_primes = 0;
char line[1024]; // 存储一行的内容
while (fgets(line, sizeof(line), file)) { // 遍历文件的每一行
total_primes += count_primes_in_line(line);
}
fclose(file);
printf("Total primes in the file: %d\n", total_primes);
return 0;
}
```
在这个代码中,我们首先读取文件的每一行,然后调用`count_primes_in_line`函数计算行中质数的个数,并累加到总质数计数器。注意,这个代码假设文件中每个数字都是单独的一行,且没有其他非数字字符。
阅读全文