C++ 输入一个正整数(1<n<=10),再输入n个数,输出偶数位上数值的平均值(保留两位小数)
时间: 2024-10-02 07:03:29 浏览: 8
在C++中,你可以通过以下步骤实现这个功能:
1. 首先,创建一个循环来读取用户输入的n个数字,并将它们存储在一个数组或向量中。因为题目要求处理的是偶数位,所以需要对每个数字进行分解,提取出每一位。
2. 对于每一位,判断它是否位于偶数位置(从0开始计数,第一位就是偶数位)。如果是,就将其加入到一个临时变量中,用于计算总和。同时,记录下有效偶数位的数量。
3. 当所有数字都处理完毕后,计算并求得偶数位的平均值,即总和除以偶数位的数量。由于题目要求保留两位小数,可以使用`std::fixed`和`std::setprecision(2)`控制输出精度,或者直接在计算时四舍五入到最近的两位。
下面是一个简单的示例代码片段:
```cpp
#include <iostream>
#include <vector>
double calculate_average_of_even_digits(int n, std::vector<int>& numbers) {
int sum = 0;
int count = 0;
for (int i = 0; i < n; ++i) {
int num = numbers[i];
while (num > 0) {
int digit = num % 10;
if (i % 2 == 0) { // 偶数位
sum += digit;
count++;
}
num /= 10;
}
}
return static_cast<double>(sum) / count * 100.0; // 四舍五入到两位小数
}
int main() {
int n;
std::cout << "请输入正整数(n): ";
std::cin >> n;
std::vector<int> numbers(n);
std::cout << "请输入" << n << "个数字: ";
for (int& num : numbers) {
std::cin >> num;
}
double average = calculate_average_of_even_digits(n, numbers);
std::cout << "偶数位数值的平均值(保留两位小数): " << fixed << setprecision(2) << average << "\n";
return 0;
}
```