求出数组中最大数和次最大数

【程序改错】 -------------------------------------------------------- 功能:求出a所指数组中最大数和
【程序改错】
--------------------------------------------------------
功能:求出a所指数组中最大数和次最大数(规定最大数和次最大
数不在a[0]和a[1]中),依次和a[0]、a[1]中的数对调.
例如:数组中原有的数:7、10、12、0、3、6、9、11、5、8,
输出的结果为:12、11、7、0、3、6、9、10、5、8.
------------------------------------------------------*/
#include
#include
#define N 20
int fun ( int * a,int n )
{
int k,m1,m2,max1,max2,t;
max1=max2= -32768; m1=m2=0;
for ( k = 0; k < n; k++ )
if ( a[k]>max1 )
{
max2 = max1; m2 = m1;
max1 = a[k]; m1 = k;
}
//
t = a[1];
a[m2]=a[1];
a[m2] = t;
}
main( )
{
int x,b[N]={7,10,12,0,3,6,9,11,5,8},n=10,i;
clrscr( );
for ( i = 0; i

/*--------------------------------------------------------
功能:求出a所指数组中最大数和次最大数(规定最大数和次最大
数不在a[0]和a[1]中),依次和a[0]、a[1]中的数对调.
例如:数组中原有的数:7、10、12、0、3、6、9、11、5、8,
输出的结果为:12、11、7、0、3、6、9、10、5、8.
------------------------------------------------------*/
#include
#include
#define N 20
int fun ( int * a,int n )
{
\x05int k,m1,m2,max1,max2,t;
\x05max1=max2= -32768; m1=m2=0;
\x05
\x05for ( k = 0; k < n; k++ )
\x05\x05if ( a[k]>max1 )
\x05\x05{
\x05\x05\x05max2 = max1; m2 = m1;
\x05\x05\x05max1 = a[k]; m1 = k;
\x05\x05}
\x05\x05//
\x05t = a[1];
\x05a[1]=a[m2];
\x05a[m2] = t;
}
main( )
{
\x05int x,b[N]={7,10,12,0,3,6,9,11,5,8},n=10,i;
//\x05clrscr( );
\x05for ( i = 0; i
温馨提示:内容为网友见解,仅供参考
无其他回答

求出数组中最大数和次最大数
功能:求出a所指数组中最大数和次最大数(规定最大数和次最大 数不在a[0]和a[1]中),依次和a[0]、a[1]中的数对调.例如:数组中原有的数:7、10、12、0、3、6、9、11、5、8,输出的结果为:12、11、7、0、3、6、9、10、5、8.---*\/ include include define N 20 int fun ( ...

如何在数组中找到最大值
以下三解法可以寻找到数组中的最大值:1、问题分解法。把题目看做两个独立的问题,而非一个问题,每次分别找出最小值和最大值即可,此时,一共需要遍历两次数组,比较次数为2N次,N表示数组的长度;2、取单元素法。维持两个变量min和max,min标记为最小值,max标记为最大值,每次取出一个元素,先...

如何在数组中找到最大和次大
在一个已经具有N个元素的数组中找到最大和次大的代码:m1=m2=a[0];for(i=1;i<N;i++)if(a[i]>m1){m2=m1;m1=a[i]);else if(a[i]>m2)m2=a[i];printf("m1=%d\\nm2=%d\\n",m1,m2);

怎么求一个数组中的最大值和最大值出现的次数
开始比较,用a从数组第一个数开始比较,逐一递加,当比较结果为大于时,变量b+1,当比较结果为小于时,变量a存储该数,并把变量b归为数1.直到比较结束,便得到您的需求。

C语言,求数组中的最大值和次大值
"stdio.h"int main(void){ int str[10]={1,2,3,4,5,6,7,8,9,10};int i=sizeof(str);int max0=0;\/\/最大值 int max1=0;\/\/次大值 for(i=0;i<10;i++){ if(str[i]>max0)max0=str[i];else if(str[i]>max1)max1=str[i];} system("pause");return 0;} ...

用c++方法求一组数中最大和次大的数
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;} ...

数组,求这数组中出现最多次数的值且最大
思路上,就是先从一个元素开始,认定这个是最多的,同时出现次数为1.然后计算两个元素时的情况,下一个元素如果和当前最多次数值相同,那么出现次数加一,否则在当前规模数组内统计个数,如超过当前最大值,则替换值和次数。直到规模扩大到当前个数与总长度相等为止。反过来的过程就是递归了,对于n个...

c语言中怎么求数组中的最大值?
传统的流程图如下:流程的解释:对abc三个数进行大小的比较,总共需要比较三次;1、首先输入a,b,c三个数。2、比较a,b两个数,得出a与b中的最大值。3、然后比较b与c两个数,得出b与c的最大值。4、最后将第2步与第3步得出的最大值进行比较,得出我们需要的最大数。

怎样在excel里面求数组的最大值?
3、变通一下,可以用:=(E19-F19>=0)*(E19-F19),当差值为负时,前面的判断不成立,自然会按0计算,得到0,当差值非负时,判断成立,按1相乘,得到原差值;4、也可以用MAX求最大值函数:=MAX(E19-F19,0),当差值为负数时,最大值会取0,当公式非负时,取差值,这是最合理的公式。

...2. 找出整型数组A[n]中元素的最大值和次最大值。
首先c++algorithm库里面提供了sort函数支持排序。快排实现的。直接sort就可以了。对于最大和次大是可以通过一边扫描实现的。记录两个指针。max1,max2。保留目前位置的次大和最大。然后扫描的时候更新就行了。但是如果排完序的话,最大和次大就是A[N]和A[N-1](ps:如果是严格次大的话还是需要再...

相似回答
大家正在搜