编写一个c++程序,整数序列进行从小到大排序,选取排第二的值 (每个数字只使用一次)。们从序列中将每个数字选取出来进行从小到大排序(每个数字只使用一次),排第二的数值就是第二统计数字。换句话说,第二统计数字就是序列中除去最小值数字以外的最小值。请你帮助鲍勃解决这个问题。
输入输出说明:
输入的第一行是整数n(1 ≤ n ≤ 100),即序列中整数的个数
第二行是整数序列a1,a2,…,an(-100 ≤ ai ≤ 100)如果序列含有第二统计数字,则输出这个整数;否则,输出NO。
测试举例:
测试输入:
4
1 2 2 -4
预期输出:1
测试输入:
1
28
预期输出:NO
#include <iostream>
using namespace std;
main()
{
int n,m,l,temp,a[20];
cin>>n;
for(int i=0;i<n;i++)
{
cin>>m;
a[i]=m;
}
if(n==1)
{
cout<<"NO";
}
else if(n>=2)
{
for(int i=0; i < n-1; i++)
{
for(int j =0 ;j<n-1-i; j++)
{
if (a[j] > a[j+1])
{
temp = a[j];
a[j] = a [j+1];
a[j+1] = temp;
}
}
}
l=a[0];
if(a[0]==a[n-1])
{
cout<<"NO";
}
else
{
for(int i=1;i<=n;i++)
{
if(a[i]>l)
{
cout<<a[i];
break;
}
}
}
}
}