当前位置:首页 C++ > 正文

C++求n个整数的平均值

作者:野牛程序员:2024-11-17 22:04:14 C++阅读 2183
C++求n个整数的平均值

C++求n个整数的平均值 

【题目描述】 

求n个整数的平均值,结果保留两位小数。 

【输入】 

两行。 第1行为n,表示输入的整数个数。 第2行包含n个整数,整数之间使用空格隔开。 

【输出】 

n个数的平均值(保留两位小数)。 

【样例输入】

 5 

1 2 3 4 5 

【样例输出】 

3.00


#include <iostream>
#include <iomanip>
using namespace std;

int main() {
    int n; // 输入整数的个数
    cin >> n;

    int sum = 0; // 用于存储所有整数的和
    for (int i = 0; i < n; ++i) {
        int num;
        cin >> num;
        sum += num; // 累加每个整数
    }

    // 计算平均值
    double average = static_cast<double>(sum) / n;

    // 设置输出格式,保留两位小数
    cout << fixed << setprecision(2) << average << endl;

    return 0;
}
  • 输入部分

    • 第1行输入整数 nnn

    • 第2行输入 nnn 个整数。

  • 逻辑部分

    • 使用变量 sum 累加所有整数。

    • 使用 static_cast<double>(sum)sum 转换为浮点型,避免整数除法带来的误差。

  • 输出部分

    • 使用 fixedsetprecision(2) 设置输出格式,保留两位小数。

如果使用 printf,可以直接通过格式化输出保留两位小数。以下是实现代码:

#include <iostream>
#include <cstdio>
using namespace std;

int main() {
    int n; // 输入整数的个数
    cin >> n;

    int sum = 0; // 用于存储所有整数的和
    for (int i = 0; i < n; ++i) {
        int num;
        cin >> num;
        sum += num; // 累加每个整数
    }

    // 计算平均值
    double average = static_cast<double>(sum) / n;

    // 使用 printf 输出保留两位小数
    printf("%.2f\n", average);

    return 0;
}
  • 输入部分

    • 第1行输入整数 nnn

    • 第2行输入 nnn 个整数。

  • 逻辑部分

    • 累加所有整数的和。

    • 将总和转换为浮点数 double,计算平均值。

  • 输出部分

    • 使用 printf("%.2f\n", average) 格式化输出,保留两位小数。


如果不使用 static_cast,可以通过将整数和除法的操作数之一改为浮点数来实现隐式类型转换。以下是代码实现:

#include <iostream>
#include <cstdio>
using namespace std;

int main() {
    int n; // 输入整数的个数
    cin >> n;

    int sum = 0; // 用于存储所有整数的和
    for (int i = 0; i < n; ++i) {
        int num;
        cin >> num;
        sum += num; // 累加每个整数
    }

    // 计算平均值,使用 1.0 * sum 确保浮点运算
    double average = 1.0 * sum / n;

    // 使用 printf 输出保留两位小数
    printf("%.2f\n", average);

    return 0;
}


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
  • C++
  • 最新推荐

    热门点击