//生成99个不同的数,包括0
public class PanDuan{
public static void main(String args[]){
int array[] = new int[99];
int i,j,a,n,k=0;
for(i=0;i<99;i++){
array[i] = 0; //数组初始化
}
for(i=1;i<99;i++){
for(j=0;j<i;j++){
a = (int)(100*Math.random()); //生成一个随机数a,0<a<100
//判断前i-1个数是否与第i个数相同,如果不同,执行k++
for(n=0;n<=i;n++){
if(array[n]!=a){
k++;
}
}
if(k==i){
array[i] = a;//如果k==i 则array[i] = a
}
else{
j = 0;
}
}
} for(i=0;i<99;i++){
System.out.println(array[i]);
}
}
}
public class PanDuan{
public static void main(String args[]){
int array[] = new int[99];
int i,j,a,n,k=0;
for(i=0;i<99;i++){
array[i] = 0; //数组初始化
}
for(i=1;i<99;i++){
for(j=0;j<i;j++){
a = (int)(100*Math.random()); //生成一个随机数a,0<a<100
//判断前i-1个数是否与第i个数相同,如果不同,执行k++
for(n=0;n<=i;n++){
if(array[n]!=a){
k++;
}
}
if(k==i){
array[i] = a;//如果k==i 则array[i] = a
}
else{
j = 0;
}
}
} for(i=0;i<99;i++){
System.out.println(array[i]);
}
}
}
public static void main(String args[]) {
int array[] = new int[99];
boolean flag; //用于判断是否发现相同的数 for (int i = 0; i < 99; i++) {
flag=false;
int a = (int) (100 * Math.random());
for (int j = 0; j < i; j++) {
if(array[j]==a){
flag=true;
break;
}
}
if(!flag){
array[i]=a;
}else{
i--;
}
} for (int i = 0; i < 99; i++) {
System.out.println(array[i]);
}
}
}
你的代码好像是死循环,帮你改了一下。
public class StudentHome {
public static void main(String args[]) {
int array[] = new int[99];
int i, j, a = 0, n, k = 0; for (i = 0; i < 99; i++) {
array[i] = 0; // 数组初始化
} for (i = 1; i < 99; i++) {
a = (int) (100 * Math.random()); // 生成一个随机数a,0<a<100
for(j = 0; j <= i; j++) {
if(array[j] != a) {
k++;
}
}
if(k == (i+1)){
array[i] = a;
}
else {
--i;
k = 0;
}
} for (i = 0; i < 99; i++) {
if(i%20 == 0)
System.out.println();
System.out.print(array[i] + " ");
}
}
}
k的值应该要回0,否则的话,到后面,k的值永远比i大,那么就陷入死循环了
import java.lang.Class;public class StudentHome {
public static void main(String args[]) {
int array[] = new int[99];
int i, j, a = 0, n, k = 0; for (i = 0; i < 99; i++) {
array[i] = 0; // 数组初始化
} for (i = 1; i < 99; i++) {
a = (int) (100 * Math.random()); // 生成一个随机数a,0<a<100
for(j = 0; j <= i; j++) {
if(array[j] != a) {
k++;
}
}
if(k == (i+1)){
array[i] = a;
k = 0;
}
else {
--i;
k = 0;
}
} for (i = 0; i < 99; i++) {
if(i%20 == 0)
System.out.println();
System.out.print(array[i] + " ");
}
}
}
错了,上面得少了一个k=0,这个是对的
public static void main(String args[]) {
HashSet<Integer> set = new HashSet<Integer>();
while(set.size() < 100){
set.add((int)(1000 * Math.random() - 1));
//生成的是99个 1000 以内(含零)的整数;
}
for(Integer i : set){
System.out.print(i + " ");
}
}
}
}