用c++实现给定一组整数,求其中的最大,最小,绝对值最大和绝对值最小的数。 第一行输入正整数n,表示输入的整数个数,2<=n<=100。 第二行是n个整数。 输出n个整数中的最大值,最小值,绝对值最大值和绝对值最小值
时间: 2023-06-20 12:09:54 浏览: 243
以下是C++代码实现:
```cpp
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int n;
cin >> n;
int max_num = -1e9, min_num = 1e9, abs_max = 0, abs_min = 1e9;
for(int i=0; i<n; i++)
{
int num;
cin >> num;
max_num = max(max_num, num);
min_num = min(min_num, num);
abs_max = max(abs_max, abs(num));
abs_min = min(abs_min, abs(num));
}
cout << max_num << " " << min_num << " " << abs_max << " " << abs_min << endl;
return 0;
}
```
首先读入整数的个数n,然后遍历n个整数,分别更新最大值、最小值、绝对值最大值和绝对值最小值。最后输出这四个值即可。
相关问题
给定一组整数,使用选择排序算法将其排列成从小到大、绝对值从大到小两种结果。第一行输入正整数n,表示输入的整数个数,2<=n<=100。 第二行是n个整数。输出n个整数的从小到大、绝对值从大到小的两种排序结果。C++
以下是C++代码实现:
```cpp
#include <iostream>
#include <cmath>
using namespace std;
void selectionSort(int arr[], int n) { // 选择排序
for (int i = 0; i < n - 1; i++) {
int minIndex = i;
for (int j = i + 1; j < n; j++) {
if (arr[j] < arr[minIndex])
minIndex = j;
}
swap(arr[i], arr[minIndex]);
}
}
void absoluteSelectionSort(int arr[], int n) { // 按绝对值从大到小排序
for (int i = 0; i < n - 1; i++) {
int maxIndex = i;
for (int j = i + 1; j < n; j++) {
if (abs(arr[j]) > abs(arr[maxIndex]))
maxIndex = j;
}
swap(arr[i], arr[maxIndex]);
}
}
int main() {
int n;
cin >> n;
int arr[n];
for (int i = 0; i < n; i++)
cin >> arr[i];
selectionSort(arr, n); // 从小到大排序
for (int i = 0; i < n; i++)
cout << arr[i] << " ";
cout << endl;
absoluteSelectionSort(arr, n); // 按绝对值从大到小排序
for (int i = 0; i < n; i++)
cout << arr[i] << " ";
cout << endl;
return 0;
}
```
输入示例:
```
5
-3 2 1 -4 5
```
输出示例:
```
-4 -3 1 2 5
5 -4 -3 2 1
```
CSP题目100分答案C++ 问题描述:给定n个数,请找出其中相差(差的绝对值)最小的两个数,输出它们的差值的绝对值。 输入格式: 输入第一行包含一个整数n。 第二行包含n个正整数,相邻整数之间使用一个空格分隔
这个问题可以使用C++通过排序算法来解决。首先,我们需要读取输入的整数n和n个整数,并将这些数字存储在一个数组中。然后,对这个数组进行排序,最简单的方法可以选择快速排序或者归并排序。最后,由于排序后的数组中相邻元素的差将是最大的,我们可以直接计算数组的第一个元素和最后一个元素(即最大值和最小值)之间的差的绝对值作为结果。
下面是一个简单的C++代码示例:
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
int n;
std::cin >> n;
// 创建一个vector来存储输入的整数
std::vector<int> numbers(n);
for (int i = 0; i < n; ++i) {
std::cin >> numbers[i];
}
// 对vector进行排序
std::sort(numbers.begin(), numbers.end());
// 计算并输出最小差值
int min_diff = std::abs(numbers[0] - 1]);
std::cout << "The minimum absolute difference is: " << min_diff << std::endl;
return 0;
}
```
阅读全文