#include<iostream>
using namespace std;
int main()
{
int s;
cin>>s;
int t=3;
int maxValue,imax[t],maxIndex,arr[s];
for(int i=0; i<s; i++){
cin>>arr[i];
}
maxValue=arr[0];
for(int i=0;i<s;i++){
if(arr[i]>maxValue){
maxValue=arr[i];
imax[0] = i;
}
}
maxValue=arr[0];
for(int i=0;i<s;i++){
if (i == imax[0]) { continue; }
if(arr[i]>maxValue){
maxValue=arr[i];
imax[1] = i;
}
}
maxValue=arr[0];
for(int i=0;i<s;i++){
if (i == imax[0]) { continue; }
if (i == imax[1]) { continue; }
if(arr[i]>maxValue){
maxValue=arr[i];
imax[2] = i;
}
}
cout<<"First biggest number:"<<arr[imax[0]]<<"\n";
cout<<"Second biggest number:"<<arr[imax[1]]<<"\n";
cout<<"Third biggest number:"<<arr[imax[2]];
return 0;
}
該程序必須返回這個數組中最大的樹數,但是我不知道爲什麼當我引入例如五個數字(121,34,56,67,545)並且編譯器是返回545然後崩潰。 預先感謝您的回答。排列中最大的三個數字
'arr [s]'不是標準的C++。你不能使用'std :: vector'而不是?另外,你如何處理前3位數字包含重複的情況? –
Bathsheba
正如@Bathsheba所說,使用'std :: vector'。然後查找'std :: nth_element'。 –
當我開始編譯我介紹作爲例子五個數字(121,34,56,67,545)和編譯器是返回545然後分解 –