c++ - 列出数组中的最小值和最大值
问题描述
我需要列出数组中的最小值和最大值。例如我有 10 个数组,所以我需要列出数组中的 5 个最小值和 5 个最大值。我想让我的程序可以做到这一点.. 例子
{1.2, 3.5, 4.5, 8.9, 2.4, 6.5, 7.8, 3.3, 6.5, 9.5} {1.2 < 3.5, 4.5 < 8.9, 2.4 < 6.5, 7.8 < 3.3, 6.5 < 9.5}
如果数字小则赢 赢:1.2 4.5 2.4 3.3 6.5 输:3.5 8.9 6.5 7.8 9.5
我已经在代码中尝试了许多循环样式和布尔值。
#include <iostream>
using namespace std;
int main(){
//double arr[2] = {1.2, 3.5};
double arr[10] = {1.2, 3.5, 4.5, 8.9, 2.4, 6.5, 7.8, 3.3, 6.5, 9.5};
double min = arr[0];
double max = arr[0];
double Sdata[5] = {0};
double Bdata[5] = {0};
int counterMin = 0;
int counterMax = 0;
for(int i = 1; i<10; i++){
if(arr[i]<max || arr[i]> max){
max = arr[i];
if(counterMax<5){
Bdata[counterMax] = max;
counterMax++;
}
max = arr[i+1];
}
if(arr[i]<min || arr[i]> min){
//min = arr[i];
if(counterMin<5){
Sdata[counterMin] = min;
counterMin++;
}
min = arr[i+1];
}
}
//Output
cout<<"Minimum: "<<endl;
for(int w = 0; w<5; w++){
cout<<Sdata[w]<<" ";
}
cout<<endl;
cout<<"Maximum: "<<endl;
for(int j = 0; j<5; j++){
cout<<Bdata[j]<<" ";
}
return 0;
}
Output from the program is:
Minimum:
1.2 4.5 2.4 7.8 6.5
Maximum:
3.5 8.9 6.5 3.3 9.5
I expect the output from the program is:
Minimum:
1.2 4.5 2.4 3.3 6.5
Maximum:
3.5 8.9 6.5 7.8 9.5
解决方案
首先,由于问题被标记为 C++,我认为你应该更好地使用std::vector
而不是数组。
除此之外,如果您想对数组对进行排序,您可以使用类似的东西。
#include <vector>
int main()
{
std::vector<double> arr{1.2, 3.5, 4.5, 8.9, 2.4, 6.5, 7.8, 3.3, 6.5, 9.5};
std::vector<double> maxs(arr.size()/2);
std::vector<double> mins(arr.size()/2);
double max, min;
for (unsigned i = 0; i < arr.size()/2; ++i)
{
min = arr[2*i];
max = arr[2*i + 1];
if (min > max) std::swap(min, max);
maxs[i] = max;
mins[i] = min;
}
return 0;
}
这只是一个简单的片段,没有错误/绑定检查等......
您还可以检查您的原始向量是否包含偶数个元素,然后相应地继续。
如果我没有正确理解某些内容或犯了任何错误,请随时纠正我!
推荐阅读
- amazon-web-services - 从模板 AWS CDK 导入现有 VPC
- flutter - Flutter 是否可以根据 pubspec.yaml 中的设备类型导入特定的库
- spring-boot - 使用 spring data jpa 将 POJO 保存到 DB
- c# - 如何将 Select2 SelectList 中的值存储为字符串
- android - 如何防止用户在 ACTION_CREATE_DOCUMENT 上选择不支持“wa”模式打开文件描述符的位置?
- java - 通过命令行运行项目时如何在gradle中设置系统属性?
- python - 在盈透证券的 TWS api 下另一个订单之前,我如何检查是否有未平仓订单?
- php - 查询太旧且响应超时已过期或查询 ID 在(截断...)电报机器人 API
- html - 如何在溢出可见的父项内滚动/拖动元素?
- typescript - 更正将字段映射在一起的 TS 声明