如何用C++程序计算一组整数的总和及其平均值?
时间: 2024-10-24 11:06:06 浏览: 28
在C++中,计算一组整数的总和和平均值非常直接,你可以使用数组、向量或者循环结构。这里是一个基本的示例,假设我们有一个包含整数的数组:
```cpp
#include <iostream>
#include <vector>
int main() {
std::vector<int> numbers = {10, 20, 30, 40, 50}; // 这里可以替换为你想要计算的整数序列
int sum = 0;
for (const auto& num : numbers) {
sum += num; // 计算总和
}
double average = static_cast<double>(sum) / numbers.size(); // 将整数转换成浮点型以得到准确的平均值
std::cout << "Sum: " << sum << std::endl;
std::cout << "Average: " << average << std::endl;
return 0;
}
```
在这个例子中,我们首先初始化了一个整数向量,然后遍历这个向量,将每个元素加到`sum`上。最后,我们将`sum`除以数字的数量(即向量长度),得到平均值。
如果你想让用户输入一组数字,可以使用`std::cin`来获取用户输入,并动态创建数组或向量。
相关问题
给定一个包含正整数和0(表示输入结束)的数组,数组长度在4到20之间,如何使用c语言(不适用c++)编写程序来:1. 计算数组中所有非零数字的平均值?2. 对于每个非零数字,如果它大于平均值,输出该数与平均值的差;如果不大于或等于平均值,输出0?
在C语言中,你可以按照以下步骤编写程序来实现这两个功能:
1. 定义函数`calculate_average()`来计算非零数字的平均值。首先初始化总和和计数器为0,然后遍历数组,只对非零元素做累加并增加计数。最后返回总和除以计数得到的平均值。
```c
double calculate_average(int arr[], int size) {
double sum = 0;
int count = 0;
for (int i = 0; i < size; i++) {
if (arr[i] != 0) {
sum += arr[i];
count++;
}
}
return count > 0 ? sum / count : 0; // 防止除以0的情况
}
```
2. 定义另一个函数`process_array()`,在这个函数中先调用上面的`calculate_average()`函数获取平均值,然后遍历数组,根据条件判断是否输出数字和平均值的差或0。
```c
void process_array(int arr[], int size) {
double average = calculate_average(arr, size);
for (int i = 0; i < size; i++) {
if (arr[i] != 0 && arr[i] > average) {
printf("%d - %.2f = %lf\n", arr[i], average, arr[i] - average);
} else {
printf("0\n"); // 如果不大于或等于平均值,则输出0
}
}
}
```
将这两个函数整合在一起,并添加主函数`main()`来接收数组和大小作为输入:
```c
#include <stdio.h>
// ... (上述两个函数定义)
int main() {
int arr[] = {5, 2, 0, 8, 6, 0, 10}; // 示例数组
int size = sizeof(arr) / sizeof(arr[0]);
process_array(arr, size);
return 0;
}
```
用C++解决从键盘输入10个整数,求出其总和及平均值
在C++中,你可以通过cin来获取用户从键盘输入的10个整数,并用循环结构计算它们的总和和平均值。以下是相应的代码示例:
```cpp
#include <iostream>
using namespace std;
int main() {
int numbers[10];
float average;
int sum = 0; // 初始化总和为0
// 从键盘获取10个整数并存入数组
cout << "请输入10个整数:";
for (int i = 0; i < 10; i++) {
cin >> numbers[i];
sum += numbers[i]; // 累加总和
}
// 计算平均值
average = static_cast<float>(sum) / 10;
// 输出结果
cout << "这10个数的总和是:" << sum << endl;
cout << "平均值是:" << average << endl;
return 0;
}
阅读全文