1 条题解
-
0
C :
#include <stdio.h> main(){ int n,i,j,t; scanf("%d",&n);int a[n+1];a[10]=-1; for(i=0;i<n;i++){ scanf("%d",&a[i]); for(j=0;j<i;j++){ if(a[i]<a[j]){ t=a[i];a[i]=a[j];a[j]=t; } } }t=0; for(i=0;i<n;i++)if(a[i]!=a[i+1])t++;printf("%d\n",t); for(i=0;i<n;i++)if(a[i]!=a[i+1])printf("%d ",a[i]); }
C++ :
#include<cstdio> using namespace std; int main() { int n; scanf("%d",&n); int a[n+10]; for(int i=1;i<=n;++i) { scanf("%d",&a[i]); } int x=n; for(int y=1;y<=n;++y) { for(int z=y+1;z<=n;++z) { if(a[y]==a[z]) { --x; a[y]=1001; } } } for(int c=1;c<=n-1;++c) { for(int b=1;b<=n-c;++b) { if(a[b]>a[b+1]) { int t=a[b]; a[b]=a[b+1]; a[b+1]=t; } } } printf("%d\n",x); for(int d=1;d<=x-1;++d) { printf("%d ",a[d]); } printf("%d\n",a[x]); return 0; }
Pascal :
program lixinyi; var n,x,i,sum,j:longint; a:array[1..100] of longint; p:array[1..1000] of boolean; procedure kp(lf,rt:longint); var x,t,n:longint; begin i:=lf; j:=rt; x:=a[(lf+rt)div 2]; repeat while a[i]<x do i:=i+1; while a[j]>x do j:=j-1; if i<=j then begin t:=a[i]; a[i]:=a[j]; a[j]:=t; i:=i+1; j:=j-1; end; until i>j; if i<rt then kp(i,rt); if j>lf then kp(lf,j); end; {procedure kp(lf,rt:longint); var mid,t,i,j:longint; begin i:=lf; j:=rt; x:=(i+j) div 2; repeat while a[i]<a[x] do inc(i); while a[j]>a[x] do dec(j); if i<=j then begin t:=a[i]; a[i]:=a[j]; a[j]:=t; inc(i); dec(j); end; until i>j; if i<rt then kp(i,rt); if j>lf then kp(lf,j); end;} begin readln(n); for i:= 1 to n do begin read(x); if not p[x] then begin p[x]:=true; inc(sum); a[sum]:=x; end; end; kp(1,sum); writeln(sum); for i:= 1 to sum-1 do write(a[i],' '); writeln(a[sum]); end.
Java :
import java.util.ArrayList; import java.util.List; import java.util.Scanner; public class Main { /** * 明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性, * 他先用计算机生成了N个1到1000之间的随机整数(N≤100),对于其中重复的数字, * 只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。 * 然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。 * 请你协助明明完成“去重”与“排序”的工作。 * * 10 20 40 32 67 40 20 89 300 400 15 */ public static void main(String[] args) { // TODO Auto-generated method stub Scanner scan = new Scanner(System.in); int n = scan.nextInt(); List<Integer> list = new ArrayList<Integer>(); /*for(int i=0;i<n;i++){ int in = scan.nextInt(); list.add(in); }*/ boolean flag = true; // int in = scan.nextInt(); while(flag){ flag = false ; for(int i=0;i<n;i++){ int in = scan.nextInt(); if(in<0||in>=1000){ System.out.println("请输入1000以内的整数。"); flag = true; }else{ list.add(in); } } } List<Integer> list1 = new ArrayList<Integer>(); for(int i = 0;i<list.size();i++){ if(!list1.contains(list.get(i))){ list1.add(list.get(i)); } } List<Integer> list2 = new ArrayList<Integer>(); List<Integer> listDel = new ArrayList<Integer>(); int x= list1.size(); for(int i=0;i<x;i++){ int min = 1001; for(int j=0;j<list1.size();j++){ if(min>list1.get(j)&&!listDel.contains(list1.get(j))){ min = list1.get(j); } } listDel.add(min); list2.add(i, min); } System.out.println(x); for(int i=0;i<list2.size();i++){ System.out.print(list2.get(i)+" "); } } }
- 1
信息
- ID
- 1779
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者