编写函数f(int*p,int n),求数组的最大和次大值

编写函数f(int*p,int n),求数组的最大和次大值

#include<stdio.h>

#define N 10
void fun(int *x,int n)
{
int i,j,k,temp;
for(i = 0 ; i < 2 ; i ++) //利用选择排序进行两次比较就行了,因为我们只需改变前边两个数a[0],a[1]的值
{
k = i;
for(j = i + 1 ; j < n ; j ++)
if(*(x + k) < *(x + j)) //这句代码等同于 if(a[k] < a[j])
k = j;
if(k != i)
{ temp = *(x+k);*(x+k) = *(x+i);*(x+i)=temp; }
}
}

int main()
{
int a[N],i;
for(i=0;i<N;i++)
scanf("%d",a+i);
fun(a,N);
for(i=0;i<N;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}

//不知道这样是否达到了你的要求
温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答