c语言一批整数保存在文本文件in.txt中,数据间以空格分隔,统计所有整数中素数的平均值(保留两位小数)并保存在out.txt文件中。(文件均默认在当前文件夹下)
时间: 2025-02-17 13:23:19 浏览: 37
为了完成这个任务,我们可以按照以下步骤编写C语言程序:
1. 首先打开输入文件`in.txt`,读取其中的整数并检查它们是否为素数。
2. 素数判断可以使用循环和条件语句,通常我们会遍历每个数字,如果它能被除了1和本身以外的任何数整除,则不是素数。
3. 统计素数的数量,并计算它们的总和。
4. 计算素数的平均值,保留两位小数。
5. 最后,将结果写入到输出文件`out.txt`中。
以下是简单的C程序示例:
```c
#include <stdio.h>
#include <math.h>
// 判断是否为素数
int is_prime(int num) {
if (num <= 1) return 0;
for (int i = 2; i * i <= num; i++) {
if (num % i == 0) return 0;
}
return 1;
}
double average_of_primes() {
double sum = 0;
int prime_count = 0;
FILE* in_file = fopen("in.txt", "r");
if (!in_file) {
perror("Error opening input file");
exit(1);
}
char line[100];
while (fgets(line, sizeof(line), in_file)) {
int num = atoi(line); // 转换字符串为整数
if (is_prime(num)) {
sum += num;
prime_count++;
}
}
fclose(in_file);
// 如果没有任何素数,返回0作为平均值
if (prime_count == 0) return 0;
double average = sum / prime_count;
printf("Average of primes: %.2f\n", average);
return average;
}
int main() {
double avg = average_of_primes();
FILE* out_file = fopen("out.txt", "w");
if (!out_file) {
perror("Error opening output file");
exit(1);
}
fprintf(out_file, "%.2f\n", avg);
fclose(out_file);
return 0;
}
```
阅读全文
相关推荐



