2020A_F成绩分析

2020A_F成绩分析

  • 题目描述

小蓝给学生们组织了一场考试,卷面总分为 100 分,每个学生的得分都是一个 0 到 100 的整数。

请计算这次考试的最高分、最低分和平均分。

输入描述

输入的第一行包含一个整数 n\ (1 ≤ n ≤ 10^4)n (1≤n≤104),表示考试人数。

接下来 nn 行,每行包含一个 0 至 100 的整数,表示一个学生的得分。

输出描述

输出三行。

第一行包含一个整数,表示最高分。

第二行包含一个整数,表示最低分。

第三行包含一个实数,四舍五入保留正好两位小数,表示平均分。

输入输出样例

输入

7
80
92
56
74
88
99
10

输出

99
10
71.29

ac

#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int main()
{
  // 请在此输入您的代码
  int n, x, sum = 0;
  int maxValue = 0;
  int minValue = 100;
  cin >> n;
  for (int i = 0; i < n; i++) {
    cin >> x;
    sum += x;
    if (x > maxValue) maxValue = x;
    if (x < minValue) minValue = x;
  }
  float averageValue = 1.0 * sum / n;
  cout << maxValue <<endl << minValue << endl;
  cout << setprecision(2) << fixed << averageValue << endl;
  return 0;
}
  • ac
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int main()
{
  // 请在此输入您的代码
  int n, x, sum = 0;
  int maxValue = 0;
  int minValue = 100; 
  cin >> n;
  for (int i = 0; i < n; i++) {
    cin >> x;
    sum += x;
    if (x > maxValue) maxValue = x;
    if (x < minValue) minValue = x;
  }
  cout << maxValue <<endl << minValue << endl;
    
  float averageValue = 1.0 * sum / n;
  averageValue = round(averageValue * 100) / 100;
    
  //cout << averageValue << endl;
  //cout << setprecision(2) << fixed << averageValue << endl;
  printf("%.2lf", averageValue);
  return 0;
}
  • cout << averageValue << endl; 用这条语句输出 有无round都wa

    • 无round 输出用cout不加setprecision ------- wa 0/10--------没有保留两位小数

    • 有round 输出用cout不加setprecision ------- wa 8/10------------我认为应该是因为当结果本身是一位小数时不能将结果输出成两位小数 也就是说只能向下兼容不能向上兼容

  • cout << setprecision(2) << fixed << averageValue << endl; 用这条语句输出 有无round都ac 因为变量是float而不是int setprecision实现了四舍五入控制有效位数

    • 无round 输出用cout加上setprecision-------ac----------------setprecision实现保留两位小数

    • 有round 输出用cout加上setprecision-------ac(老师做法1)

  • printf("%.2lf", averageValue); 用这条语句输出 有无round都ac 因为变量是float而不是int printf实现了四舍五入控制有效位数

    • 无round 输出用printf ------ac-------------------printf实现保留两位小数
    • 有round 输出用printf ------ac(老师做法2)
  • 所以 round可有可无????

  • -round(变量名)

    • 四舍五入保留整数位
    • 如果要四舍五入保留小数点后两位的话 需要先把小数扩大100倍 然后使用round保留扩大后的整数位 最后再除以100 就得到四舍五入保留小数点后两位的小数了
  • printf(输出类型,变量名) 一个都不能缺省

posted @ 2022-12-13 23:06  跬步瑶  阅读(30)  评论(0)    收藏  举报