package Homework;
/*
* 設計一程式
* 可統計1~49各出現次數,並由大到小排列
*/
public class TestLotteryRicherHw2 {
int data[]=new int[49]; //儲存1~49各出現幾次
int num[]=new int[49];
//data[0] 用來儲存1出現幾次 data[1]用來儲存2出現幾次
public void count(){
for(int i=1;i<=100000;i++){ //骰100000次
int rnum=(int)(Math.random()*49+1); //設一變數rnum接收亂數1~49
data[rnum-1]++; //假如亂數是2,由於必須存在data[1],所以必須-1
}
}
public void sortarray(){
for(int i=0;i<num.length;i++){
num[i]=i+1; //設num[0]=1 ;num[1]=2 這樣才對得起來
//如果這裡不加1,則在印出時,必需num[i]後加1
}
/*
* 使用雙向泡沫排序法排序,跟下一個比
* 0比1 1比2 2比3...
* 不確定會比幾次需要設永久迴圈
*/
while(true){
int count=0;
for(int i=0;i<data.length-1;i++){
int temp1=0,temp2=0;
if(data[i]<data[i+1]){
temp1=data[i]; //出現次數由大排到小
data[i]=data[i+1];
data[i+1]=temp1;
temp2=num[i];
num[i]=num[i+1];
num[i+1]=temp2;
count++;
}
}
if(count==0){
break;
}
}
for(int i=0;i<49;i++){
//排序後
System.out.println("出現次數由小排到大數字"+num[i]+" 出現了"+data[i]+"次");
}
}
public void printarray(){
for(int i=0;i<data.length;i++){
//排序前
System.out.println("數字"+(i+1)+"出現了"+data[i]+"次");
}
}
public static void main(String[] args) {
TestLotteryRicherHw2 test1=new TestLotteryRicherHw2 ();
test1.count();
test1.printarray(); //排序前
System.out.println("-------------------------------------------");
test1.sortarray(); //排序後
}
}
沒有留言:
張貼留言