7-6 最大与次小 (45 分)
给你一个由n个不同整数组成的序列,请你从中找出最大的数字和次小的数字。
输入格式:
输入的第一行为一个正整数T(T<=100),表示接下来有T组测试数据,
每组的第一行为一个整数n(2<=n<=100),表示序列的长度,
接下来有n个不同整数,表示序列的各个值。
输出格式:
对于每组测试数据,输出最大的数字和次小的数字,数字之间用一个空格分隔,每组输出占一行。
输入样例:
在这里给出一组输入。例如:
2
3
3 1 2
2
2 1
结尾无空行
输出样例:
在这里给出相应的输出。例如:
3 2
2 2
结尾无空行
#include<stdio.h>
int main()
{
int T,i;
scanf("%d",&T);
for(i=1;i<=T;i++)
{
int n,t,j,k;
scanf("%d",&n);
int a[n];
for(j=0;j<n;j++)
{
scanf("%d\n",&a[j]);
}
for(j=0;j<n;j++)
{
for(k=j+1;k<n;k++)
{
if(a[k]>a[j])
{
t=a[k];
a[k]=a[j];
a[j]=t;
}
}
}
printf("%d %d\n",a[0],a[n-2]);
}
return 0;
}
注:最大和次小都要和前面的后面的的值比较,不能片面的认为只能和后一个或者前一个比较,在在冒泡排序中,因为这样的原因,始终没做出来,这点参考了把怪物藏起来得代码,特此声明。
在这道题中 先理清思路,
1 按要求输入相应的·值
2 对每组数据进行排序
3 得到其最大数字和次小值