用c++方法求一组数中最大和次大的数

来源:百度知道 编辑:UC知道 时间:2024/05/29 20:25:02
详细哦

void main()
{
int a[]={1,3,4,2,5,6,8,7,9,10};
for(int i=0;i<2;i++)//两次循环将最大数和次大的放在最前面两位
{
for(int j=i+1;j<10;j++)
{
if(a[i]<a[j])
{
int temp;
temp=a[i];
a[i]=a[j];
[j]=temp;
}
}
}
cout<<"最大数是:"<<a[0]<<endl;
cout<<"次大数是:"<<a[1]<<endl;
}

就用简单或者冒泡排序法,进行两趟整理就能把你要的找出来了

用sort喽……
STL中的

把数组从小到大排序,数组最后两个就为次大和最大数。代码如下。
#include<iostream>
using namespace std;
int cmp(const void *a,const void *b)
{
return *(int *)a-*(int *)b;//从小到大快速排序
}
int main()
{
int a[10]={1,8,9,3,4,2,5,7,5,4};
qsort(a,10,sizeof(a[0]),cmp);
cout<<a[9]<<" "<<a[8]<<endl;
return 0;
}
也可以用两个循环。

汗,如果是数值类型的就不用排序操作啊,
使用SetMap加进去就搞定了,然后取最后一个