用C语言写出以下代码解决问题,判断求平均 【问题描述】编写一个程序,在给定的整数列表中,找出所有能被3整除的数字,并计算它们的平均值(保留两位小数精度)。 【输入形式】一行整数,以空格分隔。 【输出形式】一个浮点数,表示能被3整除的数字的平均值,保留两位小数。
时间: 2024-10-15 09:25:34 浏览: 32
C语言上机练习
下面是一个简单的C语言程序,用于解决这个问题:
```c
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
double average_of_divisible_by_three(int numbers[], int count) {
double sum = 0.0;
int divisible_count = 0;
for (int i = 0; i < count; i++) {
if (numbers[i] % 3 == 0) { // 判断是否能被3整除
sum += numbers[i];
divisible_count++;
}
}
if (divisible_count == 0) { // 避免除以零的情况
return 0.0;
} else {
return round((sum / divisible_count) * 100.0) / 100.0; // 计算并四舍五入到两位小数
}
}
int main() {
char input[100];
fgets(input, sizeof(input), stdin); // 从标准输入读取整数序列
int numbers[count] = {0}; // 假设count已知,实际项目中需要先解析输入
char *token = strtok(input, " "); // 使用空格分割字符串
while (token != NULL) {
numbers[count - 1] = atoi(token); // 将每个元素转换为整数并添加到数组
token = strtok(NULL, " ");
count++;
}
int actual_count = count - 1; // 去掉最后一个空字符
double result = average_of_divisible_by_three(numbers, actual_count);
printf("%.2f\n", result);
return 0;
}
```
在这个程序中,我们首先从用户输入中获取整数列表,然后遍历这个列表,统计能被3整除的数字及其总和。最后计算平均值并四舍五入到两位小数后输出结果。
请注意,此代码假设输入的整数列表不会过大,可以直接存储在一个数组中。如果输入非常大,可能需要使用其他数据结构或处理方式。
阅读全文