输入第一行包括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; }