我写了下 有点乱 不好意思
import java.util.*;
import java.math.*;
public class randomnum
{
public static void main(String[] args)
{
Scanner in = new Scanner(System.in);
int n=0,random=1;
int[] b = new int[100];
int[] rannum = new int[100];
Boolean start = true;
int num1=1;
System.out.println("请输入要随机取数的个数n");
int num = in.nextInt();
System.out.println("请输入取出的数能否重复(1/0)");
int c = in.nextInt();
System.out.println("请输入一串整数");
while(in.hasNextInt())
{
int i;
b[n] = in.nextInt();
n++;
}
for(int i=1;i<n;i++)
{
int j;
for(j=0;j<i;j++)
{
if(b[j]==b[i])
break;
}
if(j==i)
num1++;
}
if(c==1)
{
if(n<num)
{
System.out.println("取不到那么多个不同的随机数");
System.exit(0);
}
for(int i=0;i<num;i++)
{
random = (int)(Math.random()*(n-1));
rannum[i] = b[random];
}
}
else if(c==0)
{
if(num1<num||n<num)
{
System.out.println("取不到那么多个不同的随机数");
System.exit(0);
}
else
{
for(int i=0,j=1;i<num;i++,j++)
{
while(start)
{
random = (int)(Math.random()*(n-1));
for(int k=0;k<j;k++)
{
if(rannum[k]!=b[random])
start = false;
else
{
start=true;
break;
}
}
}
rannum[i] = b[random];
start = true;
}
}
}
for(int i=0;i<n;i++)
{
System.out.print(b[i]+" ");
}
System.out.println("");
for(int i=0;i<num;i++)
{
System.out.print(rannum[i]+" ");
}
System.out.println("");
}
}