输入第一行包括1个整数N,1<=N<=1000,代表输入数据的个数。 接下来的一行有N个整数。
可能有多组测试数据,对于每组数据, 第一行输出一个整数,代表N个整数中的最大值,并将此值从数组中去除,将剩下的数进行排序。 第二行将排序的结果输出。
4 1 3 4 2
4 1 2 3
#include<stdio.h>
#include<string.h>
int main(){
int n;
while(~scanf("%d",&n)){
int i,j,x[n],t;
for(i=0;i<n;i++){
scanf("%d",&x[i]);
}
if(n>1){
for(i=0;i<n;i++){
for(j=i+1;j<n;j++){
if(x[i]>x[j]){
t=x[i];
x[i]=x[j];
x[j]=t;
}
}
}
printf("%d\n",x[n-1]);
for(i=0;i<n-1;i++){
printf("%d ",x[i]);
}
}
else{
printf("%d\n%d",x[0],-1);
}
}
return 0;
} 用了冒泡排序和qsort函数
#include <stdio.h>
#include <stdlib.h>
int str[1000],n;
void buble(){
for(int i=0;i<n-1;i++){
for(int j=0;j<n-1-i;j++){
if(str[j]>str[j+1]){
int temp=str[j+1];
str[j+1]=str[j];
str[j]=temp;
}
}
}
}
int cmp(const void *a,const void *b){
return *(int *)a-*(int *)b;
}
int main(){
while(scanf("%d\n",&n)!=EOF){
for(int i=0;i<n;i++){
scanf("%d",&str[i]);
}
//buble();
qsort(str,n,sizeof(str[0]),cmp);
if(n==1){
printf("%d\n",str[0]);
printf("-1");
}else{
printf("%d\n",str[n-1]);
for(int i=0;i<n-1;i++){
printf("%d ",str[i]);
}
}
}
return 0;
}