import java.util.Random;
public class Caipiao{
public static void main(String[] args) {
int[] arr=new int[7];
boolean b=true;
Random r=new Random();
for(;;){
test1:for(int i=0;i<arr.length;i++){
int x=r.nextInt(33)+1;
arr[i]=x;
}
test2:for(int i=0;i<6;i++){
for(int j=i+1;j<7;j++){
if(arr[i]==arr[j])
b=false;
break test2;
}
}
if(!b){continue test1;}
else{
for(int i=0;i<7;i++){
System.out.print(arr[i]+" ");}
}
}
}
}
编译老是报错,希望高手指点一下
public class Caipiao{
public static void main(String[] args) {
int[] arr=new int[7];
boolean b=true;
Random r=new Random();
for(;;){
test1:for(int i=0;i<arr.length;i++){
int x=r.nextInt(33)+1;
arr[i]=x;
}
test2:for(int i=0;i<6;i++){
for(int j=i+1;j<7;j++){
if(arr[i]==arr[j])
b=false;
break test2;
}
}
if(!b){continue test1;}
else{
for(int i=0;i<7;i++){
System.out.print(arr[i]+" ");}
}
}
}
}
编译老是报错,希望高手指点一下
import java.util.List;
import java.util.Random;public class Caipiao {
public static void main(String[] args) {
List<Integer> t = new ArrayList<Integer>();
Random r = new Random();
while (t.size() < 7) {
int x = r.nextInt(33) + 1;
if (!t.contains(x)) {
t.add(x);
}
}
for (int i = 0; i < t.size(); i++) {
System.out.print(t.get(i) + " ");
}
}
}
import java.util.ArrayList;
import java.util.List;
import java.util.Random;public class Caipiao {
public static void main(String[] args) {
List<Integer> t = new ArrayList<Integer>();
Random r = new Random();
while (t.size() < 7) {
int x = r.nextInt(33) + 1;
if (!t.contains(x)) {
t.add(x);
}
}
for (int i = 0; i < t.size(); i++) {
System.out.print(t.get(i) + " ");
}
}
}
public static void main(String[] args) {
int[] arr = new int[7];
Random r = new Random();
boolean[] flag = new boolean[33];
int n =0;
while(!(n==7)){
int m = r.nextInt(33);
if(flag[m]==true){
continue;
}
flag[m]=true;
arr[n]=m;
n++;
}
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}
先把源数组设置为1-33,然后遍历数组
对每一项随机获取一个下标,交换这两项的值。
最后输出前7项即可。
import java.util.Arrays;
import java.util.Random;public class Test { public static void main(String[] args) {
int nums[] = new int[33];
for(int i = 0;i < nums.length;i++){
nums[i] = i + 1;
}
//洗牌
Random r = new Random();
for(int i = 0;i < nums.length;i++){
int index = r.nextInt(33);
int temp = nums[index];
nums[index] = nums[i];
nums[i] = temp;
}
//取前7个
int[] result = new int[7];
System.arraycopy(nums, 0, result, 0, result.length);
System.out.println("彩票号码 :" + Arrays.toString(result));
}}