1 条题解
-
0
C :
#include<stdio.h> #include<stdlib.h> #define maxn 10000 int b[maxn];//b[]存下标 int cmp(const void *a,const void *b) { return *(int *)a-*(int *)b;//升序排序 //return *(int *)b-*(int *)a; //降序排序 } int main() { int n,i,k; while(~scanf("%d %d",&n,&k)) { for(i=0;i<n;i++) { scanf("%d",&b[i]); } qsort(b,n,sizeof(b[0]),cmp);//从小到大排序 for(i=0;i<k;i++) printf("%d ",b[i]); printf("\n"); } return 0; }
C++ :
#include<cstring> #include<stack> #include<algorithm> #include<cmath> #include<iostream> #include<cstdlib> using namespace std; int main() { int n;cin>>n;int k;cin>>k; int a[n+1];for(int o=1;o<=n;o++)cin>>a[o]; sort(a+1,a+n+1); for(int r=1;r<=k;r++)cout<<a[r]<<" "; }
Pascal :
program fuck; var n,m,t,j,i:integer; a : array [1..100] of integer; begin readln(n,m); for i:= 1 to n do read(a[i]); for i:=1 to n-1 do for j:=i+1 to n do if a[i]>a[j]then begin t:=a[i]; a[i]:=a[j]; a[j]:=t; end; for i:= 1 to m do write(a[i],' '); end.
Java :
import java.util.*; public class Main { public static void sort(int[] a) { int d=a.length; while(true) { d=d/2; for(int x=0;x<d;x++) { for(int i=x+d;i<a.length;i=i+d) { int temp=a[i]; int j; for(j=i-d;j>=0&&a[j]>temp;j=j-d) { a[j+d]=a[j]; } a[j+d]=temp; } } if(d==1) { break; } } } public static void main(String[] args) { Scanner input=new Scanner(System.in); int n=input.nextInt(); int k=input.nextInt(); int[] a=new int[n]; for(int i=0;i<n;i++) { a[i]=input.nextInt(); } sort(a); for(int i=0;i<k;i++) { System.out.print(a[i]+" "); } } }
- 1
信息
- ID
- 887
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 上传者