查找
描述
编写下列函数
void find_two_largest(int a[],int n,int *largest,int *second_largest);
当传递长度为n的数组a时,函数将在数组a中搜寻最大元素和第二大元素,把它们分别存储在largest和second_largest指向的变量中。
注意:你提交的代码将被插入到以下程序框架中一起编译,所以请不要提交全部代码。
//固定头部开始
#include <stdio.h>
//固定头部结束
//你的代码开始
void find_two_largest(int a[],int n,int *largest,int *second_largest)
{
}
//你的代码结束
//固定尾部开始
int main()
{
int i,n,arr[100],largest,second_largest;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&arr[i]);
find_two_largest(arr,n,&largest,&second_largest);
printf("%d %d",largest,second_largest);
return 0;
}
//固定尾部结束
输入
第一行一个整数N (N<100)
第二行N个整数,整数间有一个空格的间隔
输出
输出N个数中的最大元素和第二大元素,用一个空格隔开
输入样例 1
5 1 2 3 4 5
输出样例 1
5 4
void find_two_largest(int a[],int n,int *largest,int *second_largest)
{
int i,j,max=0;
for(i=0;i<n-1;i++)
for(j=i+1;j<n;j++)
if(a[i]+a[j]>max)
{
max=a[i]+a[j];
if(a[i]>a[j])
{
*largest=a[i];
*second_largest=a[j];}
else
{
*largest=a[j];
*second_largest=a[i];
}
}
}
void find_two_largest(int a[],int n,int *largest,int *second_largest)
{
for(int i=0;i<n-1;i++)
for(int j=0;j<n-1-i;j++)
if(a[j]<a[j+1])
{
int t;
t=a[j];
a[j]=a[j+1];
a[j+1]=t;
}
*largest=a[0];
*second_largest=a[1];
}