T. 传感器标定助手

    传统题 1000ms 64MiB

传感器标定助手

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

石宇浩学长正在给智能车的模拟传感器做零点标定。传感器连续采集了 n 个原始读数,但由于安装误差,这些读数带有一个固定的零点偏移。

学长决定把所有读数中的最小值当作零点偏移。对于每个原始读数 raw[i],标定后的读数为:

calibrated[i] = raw[i] - min_value

请统计原始读数的最小值、最大值和平均值,并输出全部标定后的读数。

为了练习 C 语言的函数与指针,建议在程序中实现以下三个函数:

void find_range(const int a[], int n, int *min_value, int *max_value);
double average(const int a[], int n);
void calibrate(int a[], int n, int offset);

其中,min_value 和 max_value 是指针输出参数:函数通过它们把最小值和最大值返回给调用者。

输入格式

第一行输入一个整数 n,表示传感器读数的数量。

第二行输入 n 个整数 a[1], a[2], ..., a[n],表示原始读数。

输出格式

第一行输出两个整数,依次为原始读数的最小值和最大值。

第二行输出原始读数的平均值,保留两位小数。

第三行输出 n 个整数,表示标定后的读数,相邻整数之间用一个空格分隔,行末不要输出多余空格。

样例

5
1023 1018 1025 1020 1018
1018 1025
1020.80
5 0 7 2 0

样例说明

原始读数的最小值为 1018,最大值为 1025,平均值为 1020.80。

所有读数减去最小值 1018 后,得到标定结果 5 0 7 2 0。

数据范围与限制

  • 1 <= n <= 1000
  • -100000 <= a[i] <= 100000
  • 输入保证平均值的绝对误差不会受到浮点精度问题影响。

ASC2026考核C语言训练题

未参加
状态
已结束
规则
ACM/ICPC
题目
40
开始于
2026-9-20 20:00
结束于
2026-9-30 20:00
持续时间
240 小时
主持人
参赛人数
263