游客 Signup | Login
中文 | En

2501 - 数组练习-3

首先从键盘输入一个正整数n(1<n<=100,代表数组元素个数),接着输入n个整数(代表数组元素)。然后查找并输出数组元素中的次大值(即第二大值,不包括并列元素)。

Input

10 48 97 77 52 79 51 28 76 70 29

Output

79

Examples

Input

6 36 26 11 51 67 91

Output

67

Hint

相同大小的元素只计算一次,如60 60 58,则最大值是60,次大值是58

Solution C

#include<stdio.h>
int main()
{
	int n, i, j, k, t;
	int a[100];
	scanf("%d", &n);
	for(i=0; i<n && n>1 && n<=100; i++)
	{
		scanf("%d", &a[i]);
	}
	
	for(i=0; i<n-1; i++)//比较趟数
	{
		k = i;
		for(j=i+1; j<n; j++)
		{
			if(a[j] < a [k]) k = j;
		}

		{
			t = a[k];
			a[k] = a[i];
			a[i] = t;
		}

		
	}
	for(i=n-1,j=n-2; j>=0; j--)
	{
		if(a[i]==a[j]);

		else 
		{
			printf("%d", a[j]);
			break;
		}

	}	
	return 0;

}

Solution C++

#include<stdio.h>
int main(){
	int n,i,max1,max2;
	int a[100];
	scanf("%d",&n);
	for (i=1; i<=n; i++)
	{
		scanf("%d",&a[i]);
	}	
		max1=0;
	for (i=1; i<=n; i++){
		if (a[i]>=max1)
		{max1 = a[i];}
	}
		
	for (i=1; i<=n; i++){
		if (a[i]>=max2 && a[i]!=max1)
		{max2 = a[i];}
	}
	printf("%d",max2);

	return 0;
}

Hint

相同大小的元素只计算一次,如60 60 58,则最大值是60,次大值是58

Time Limit 1 second
Memory Limit 128 MB
Discuss Stats
上一题 下一题