2016年11月27日 星期日

設計一程式統計1~49各出現次數,並由大到小排列

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(); //排序後 } }

沒有留言:

張貼留言