题目描述:
输入一系列整数,将其中最大的数挑出,并将剩下的数进行排序。
输入描述:
输入第一行包括1个整数N,1<=N<=1000,代表输入数据的个数。
接下来的一行有N个整数。
输出描述:
可能有多组测试数据,对于每组数据,
第一行输出一个整数,代表N个整数中的最大值,并将此值从数组中去除,将剩下的数进行排序。
第二行将排序的结果输出。
代码
#include<stdio.h>
#include<stdlib.h>
int main()
{
int N;
while(scanf("%d",&N)!=EOF)
{
int *a= (int*)malloc(N*sizeof(int));
int len=N;
while(len--)
{
scanf("%d",&a[len]);
}
int k,min;
for(int i=0;i<N-1;i++)
{
k=i;
min=a[i];
for(int j=i+1;j<N;j++)
{
if(a[j]<min)
{
k=j;
min=a[j];
}
}
if(k!=i)
{
len=a[k];
a[k]=a[i];
a[i]=len;
}
}
printf("%d\n",a[N-1]);
if(N==1)
printf("-1");
else
for(int i=0;i<N-1;i++)
{
if(i==N-2)
printf("%d",a[i]);
else
printf("%d ",a[i]);
}
printf("\n");
}
return 0;
}