文章

【GESP】C++二级练习 luogu-B2054, 求平均年龄

二级知识点强制数据类型转换,以及一级知识点循环和基础运算问题。

luogu-B2054

题目要求

描述

班上有学生若干名,给出每名学生的年龄(整数),求班上所有学生的平均年龄,保留到小数点后两位。

输入

第一行包含一个整数 $n$($1\le n\le 100$),表示学生的总数。接下来的 $n$ 行,每行包含$1$个整数,表示每个学生的年龄,范围为 $15$ 到 $25$。

输出

输出一行,该行包含一个浮点数,为要求的平均年龄,保留到小数点后两位。

输入样例-1

2
18
17

输出样例-1

17.50


题目分析

  • 读取$n$的值,表示后续输入的数量
  • 循环$n$次,读取每个学生的年龄$a$
  • 累加每个学生的年龄
  • 计算平均年龄并保留到小数点后两位
  • 输出计算的平均年龄

注意处理整数计算到浮点数结果展示的数据类型转换问题。

示例代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <cstdio>
using namespace std;
int main() {
    // 读取学生总数
    int n;
    scanf("%d", &n);
    // 初始化平均年龄
    int ans = 0;
    // 用于存储每个学生的年龄
    int a;
    // 循环读取每个学生的年龄
    for (int i = 0; i < n; i++) {
        scanf("%d", &a);
        // 累加每个学生的年龄
        ans += a;
    }
    // 计算平均年龄并保留到小数点后两位
    printf("%.2f", (double) ans / n);
    return 0;
}

所有代码已上传至Github:https://github.com/lihongzheshuai/yummy-code

题目已加入洛谷Java、C++初学团队作业清单,可在线评测,团队名额有限,欢迎加入。

本文由作者按照 CC BY 4.0 进行授权