GESP2024年12月认证C++三级( 第三部分编程题(1)数字替换)
参考程序:
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int a[100010]; // 定义一个数组a,用于存储序列A,数组大小为100010
int main() {int n, k; // 定义变量n和k,分别表示序列的长度和替换的阈值cin >> n >> k; // 读取n和k的值// 读取序列Afor (int i = 1; i <= n; i++) {cin >> a[i]; // 逐个读取序列中的数字并存入数组a}// 初始化max_value和min_value为序列的第一个元素int max_value = a[1], min_value = a[1];// 遍历序列A,找到最大值和最小值for (int i = 1; i <= n; i++) {max_value = max(max_value, a[i]); // 更新最大值min_value = min(min_value, a[i]); // 更新最小值}// 遍历序列A,进行数字替换for (int i = 1; i <= n; i++) {if (a[i] > k) {a[i] = max_value; // 如果数字大于k,替换为最大值} else if (a[i] < k) {a[i] = min_value; // 如果数字小于k,替换为最小值}// 输出替换后的数字if (i != n) {cout << a[i] << " "; // 如果不是最后一个数字,输出数字并加空格} else {cout << a[i] << endl; // 如果是最后一个数字,输出数字并换行}}return 0; // 程序结束
}