c++ - 两个最大的数组 C++
问题描述
我有一个问题,看起来很简单,但我无法解决它给出了 n 个整数的数组。找到数组中最大的两个元素。我发现第一个找不到第二个。请帮我找到第二个。
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
cin >> n;
int a[n];
for(int i=0;i<n;i++) {
cin>>a[i];
}
int maks=a[0];
for (int i=1;i<n;i++) {
if(a[i]>maks) {
maks=a[i];
}
}
cout << maks;
}
解决方案
这是在数组中查找第二大元素的片段,
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
int *a = new int[n];
for (int i = 0; i < n; i++) {
cin >> a[i];
}
int top2element[2];
if (a[0] > a[1]) {
top2element[0] = a[0];
top2element[1] = a[1];
}
else {
top2element[1] = a[0];
top2element[0] = a[1];
}
for (int i = 2; i < n; i++) {
if (a[i] > top2element[0])
{
top2element[1] = top2element[0];
top2element[0] = a[i];
}
else if (a[i] > top2element[1]) {
top2element[1]= a[i];
}
}
cout << top2element[0]<<endl;//biggest
cout << top2element[1];//second biggest
delete a;
}
注意:如果输入流的大小未知,则动态分配内存
推荐阅读
- c# - 更新时分配 EF Core DateTime
- java - 我的辅助功能服务只工作一次,有些没用
- c++ - 有人可以追踪这种比赛条件的原因吗?
- sql - 为什么我会收到此错误?PLS-00103:在预期以下情况之一时遇到符号“CREATE”:
- node.js - 使用 axios 和 JWT 响应受保护的路由
- java - 错误无法在项目代码-with-quarkus 上执行目标 io.quarkus:quarkus-maven-plugin:1.13.2.Final:dev (default-cli):
- javascript - 来自 GSAP 的 VS 代码模块错误 TimelineMax
- javascript - 尝试在通常扩展全局类的 Jest 测试中实例化一个类
- azure - 什么是实时推理管道?
- visual-studio - VSIX 安装失败