dljcsdncj 2016-11-16 09:15 采纳率: 0%
浏览 1362

JAVA 数组问题。一个主函数里用第二个while会不执行吗?

有一个问题就是从第二个while那里就不执行了,而且dos界面会卡主,不知道为什么?(/************到***********/可以取消注释带上运行没问题)
import java.util.Scanner;
import java.util.Random;

public class RandomReorder{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
Random stochastic = new Random();

    System.out.println("How many random that you want? Enter the number: ");
    int many=scan.nextInt();
    System.out.println("What limit do you want? Enter the limit: ");
    System.out.println("Attention! The number of random array must less than  than limit");
    int limit=scan.nextInt();


    int[] array =new int[many];

    int A=0;
    int a=0;
    while(a<many){
        A = stochastic.nextInt(limit);

        for(int b=0;b<many;b++){
            if(array[b]==A){
                break;
            }
            else if(b==a){
                array[a] = A;
                a++;
                break;
            }
        }
    }

    System.out.println("\nThe array:");
    int count=0;
    for(int arr:array){
        System.out.print(arr + "\t");
        count++;
        if(count%10==0){
            System.out.println();
        }
    }
    ///下面随机抽取数组中的K个数

/**************************************************
int K=(int)stochastic.nextInt(many);//在总数是many个中找到随机K不超过many
int[] arrayK = new int[K];//arrayK数组长度就为K个

//{//
System.out.println("\n" + "Random K(With repeat):\n " + K );

///////////////////////////////以下是arrayK带重复的
int[] arrayKtemp = new int[K];
for(int i=0;i<K;i++){
arrayKtemp[i] = (int)stochastic.nextInt(K);
arrayK[i] = array[(arrayKtemp[i])];
}
System.out.println("\nRandom K array:(with repeat) ");//每十个分行
for(int i=0;i<K;i++){
System.out.print(arrayK[i] + "\t");
count++;
if(count%10==0){
System.out.println();
}
}
System.out.println("\nK array reorder:\n ");
int Klength=arrayK.length;
int total=Klength-1;
for(int i=0;i<Klength;i++){
for(int j=0;j<Klength;j++){
if(arrayK[i]<arrayK[j]){
int temp = arrayK[j];
arrayK[j] = arrayK[i];
arrayK[i] = temp;

            }
        }       
    }
    for(int arr:arrayK)
        System.out.print(arr + "\t");           

//}//
******************************/
//////////////////////////以上是arrayK带重复的

int K2=(int)stochastic.nextInt(many);

    System.out.println("\n" + "Random K2(without repeat):" + K2);
    int[] arrayK2 = new int[K2];
    int[] arrayKtemp2 = new int[K2];
    int B=0;
    int b=0;

//{
while(b<K2){
B = stochastic.nextInt(K2);
for(int s=0;s<K2;s++){
arrayKtemp2[s]=B;
arrayK2[s] = array[(arrayKtemp2[s])];

}

        for(int c=0;c<K2;c++){
            if(arrayK2[c]==B){
                break;
            }
            else if(c==a){
                arrayK2[b] = B;
                b++;
                break;
            }
        }
    }

    System.out.println("\nThe arrayK2(without repeat):\n");
    int count2=0;
    for(int arr:arrayK2){
        System.out.print(arr + "\t");
        count2++;
        if(count%10==0){
            System.out.println();
        }
    }
    int Klength2=arrayK2.length;
    System.out.println("\nK array reorder(without repeat):\n ");
    for(int i=0;i<Klength2;i++){
        for(int j=0;j<Klength2;j++){
            if(arrayK2[i]<arrayK2[j]){
            int temp = arrayK2[j];
            arrayK2[j] = arrayK2[i];
            arrayK2[i] = temp;

            }
        }       
    }
    for(int arr2:arrayK2)
        System.out.print(arr2 + "\t");  

//}
///////////////////////////

/************************
System.out.println("\nK array reorder:\n ");
int Klength=arrayK.length;
int total=Klength-1;
for(int i=0;i<Klength;i++){
for(int j=0;j<Klength;j++){
if(arrayK[i]<arrayK[j]){
int temp = arrayK[j];
arrayK[j] = arrayK[i];
arrayK[i] = temp;

            }
        }       
    }
    for(int arr:arrayK)
        System.out.print(arr + "\t");   

*******************************/

}
}

  • 写回答

3条回答 默认 最新

  • dljcsdncj 2016-11-16 09:20
    关注

    额 第一次发帖 版面好差,再发个

     import java.util.Scanner;
    import java.util.Random;
    
    public class RandomReorder{
        public static void main(String[] args){
            Scanner scan = new Scanner(System.in);
            Random stochastic = new Random();
    
            System.out.println("How many random that you want? Enter the number: ");
            int many=scan.nextInt();
            System.out.println("What limit do you want? Enter the limit: ");
            System.out.println("Attention! The number of random array must less than  than limit");
            int limit=scan.nextInt();
    
    
            int[] array =new int[many];
    
            int A=0;
            int a=0;
            while(a<many){
                A = stochastic.nextInt(limit);
    
                for(int b=0;b<many;b++){
                    if(array[b]==A){
                        break;
                    }
                    else if(b==a){
                        array[a] = A;
                        a++;
                        break;
                    }
                }
            }
    
            System.out.println("\nThe array:");
            int count=0;
            for(int arr:array){
                System.out.print(arr + "\t");
                count++;
                if(count%10==0){
                    System.out.println();
                }
            }
            ///下面随机抽取数组中的K个数
    /**************************************************
            int K=(int)stochastic.nextInt(many);//在总数是many个中找到随机K不超过many
            int[] arrayK = new int[K];//arrayK数组长度就为K个
    
    //{//
            System.out.println("\n" + "Random K(With repeat):\n " + K );        
            ///////////////////////////////以下是arrayK带重复的
            int[] arrayKtemp = new int[K];
            for(int i=0;i<K;i++){
                arrayKtemp[i] = (int)stochastic.nextInt(K);
                arrayK[i] = array[(arrayKtemp[i])]; 
            }
            System.out.println("\nRandom K array:(with repeat) ");//每十个分行
            for(int i=0;i<K;i++){
                System.out.print(arrayK[i] + "\t");
                count++;
                if(count%10==0){
                    System.out.println();
                }
            }
            System.out.println("\nK array reorder:\n ");
            int Klength=arrayK.length;
            int total=Klength-1;
            for(int i=0;i<Klength;i++){
                for(int j=0;j<Klength;j++){
                    if(arrayK[i]<arrayK[j]){
                    int temp = arrayK[j];
                    arrayK[j] = arrayK[i];
                    arrayK[i] = temp;
    
                    }
                }       
            }
            for(int arr:arrayK)
                System.out.print(arr + "\t");           
    //}//
    ******************************/
            //////////////////////////以上是arrayK带重复的   
            int K2=(int)stochastic.nextInt(many);
    
            System.out.println("\n" + "Random K2(without repeat):" + K2);
            int[] arrayK2 = new int[K2];
            int[] arrayKtemp2 = new int[K2];
            int B=0;
            int b=0;
    
    //{ 
            while(b<K2){
                B = stochastic.nextInt(K2);
                for(int s=0;s<K2;s++){
                    arrayKtemp2[s]=B;
                    arrayK2[s] = array[(arrayKtemp2[s])];   
                }
    
                for(int c=0;c<K2;c++){
                    if(arrayK2[c]==B){
                        break;
                    }
                    else if(c==a){
                        arrayK2[b] = B;
                        b++;
                        break;
                    }
                }
            }
    
            System.out.println("\nThe arrayK2(without repeat):\n");
            int count2=0;
            for(int arr:arrayK2){
                System.out.print(arr + "\t");
                count2++;
                if(count%10==0){
                    System.out.println();
                }
            }
            int Klength2=arrayK2.length;
            System.out.println("\nK array reorder(without repeat):\n ");
            for(int i=0;i<Klength2;i++){
                for(int j=0;j<Klength2;j++){
                    if(arrayK2[i]<arrayK2[j]){
                    int temp = arrayK2[j];
                    arrayK2[j] = arrayK2[i];
                    arrayK2[i] = temp;
    
                    }
                }       
            }
            for(int arr2:arrayK2)
                System.out.print(arr2 + "\t");  
    //}
            ///////////////////////////
    
    /************************
            System.out.println("\nK array reorder:\n ");
            int Klength=arrayK.length;
            int total=Klength-1;
            for(int i=0;i<Klength;i++){
                for(int j=0;j<Klength;j++){
                    if(arrayK[i]<arrayK[j]){
                    int temp = arrayK[j];
                    arrayK[j] = arrayK[i];
                    arrayK[i] = temp;
    
                    }
                }       
            }
            for(int arr:arrayK)
                System.out.print(arr + "\t");   
    *******************************/        
        }
    }
    
    
    
    评论

报告相同问题?

悬赏问题

  • ¥15 Matlab问题解答有两个问题
  • ¥50 Oracle Kubernetes服务器集群主节点无法访问,工作节点可以访问
  • ¥15 LCD12864中文显示
  • ¥15 在使用CH341SER.EXE时不小心把所有驱动文件删除了怎么解决
  • ¥15 gsoap生成onvif框架
  • ¥15 有关sql server business intellige安装,包括SSDT、SSMS。
  • ¥15 stm32的can接口不能收发数据
  • ¥15 目标检测算法移植到arm开发板
  • ¥15 利用JD51设计温度报警系统
  • ¥15 快手联盟怎么快速的跑出建立模型