[問題] *_*樂透的一個問題

看板C_and_CPP (C/C++)作者 (uglyman)時間16年前 (2009/12/01 10:07), 編輯推噓2(201)
留言3則, 3人參與, 最新討論串1/1
遇到的問題: (題意請描述清楚) #include <time.h> #include <iostream> //載入的標頭檔 using namespace std; //定義使用std命名空間 int main(void) { srand((unsigned)time(NULL)); int rato_num[100][6],rato_num_a[42]; int big_small[42],tmp[42],srt[42]; int i,j,k,x=0,y=1,m=0; /* -------------------- 亂數取出100組大樂透號碼 -------------------- */ for(i=0;i<42;i++) { big_small[i]=0; //用來比所有數字的大小(1~42) } cout << "輸出100組樂透號碼: " << endl << endl; for(i=0;i<100;i++) //取100組號碼(每組6個號碼) { cout << "第" << y << "組: "; for(j=0;j<6;j++) //取每組(6個)號碼 { if(j<1) rato_num[i][j]=(rand()%42)+1; else rato_num[i][j]=(rand()%42)+1; for(k=1;k<=j;k++) { while(rato_num[i][j]==rato_num[i][k-1]) { rato_num[i][j]=(rand()%42)+1; k=1; } } // rato_num_a[j]=rato_num[i][j]; x=rato_num[i][j]-1; //取出這次出現的號碼,減1後當big_small[]陣列的索引值 big_small[x]+=1; //累加這次出現數字的次數 cout << rato_num[i][j] << " "; } y++; //用來計算第N組號碼 cout << endl; } cout << endl; /* -------------------- 列出次數最多的前6個號碼及對應次數 -------------------- */ cout << "列出機率最高的前6個號碼及對應次數: " << endl; for(i=0;i<42;i++) { for(j=41;j>i;j--) { if(big_small[j]>big_small[j-1]) { tmp[j]=big_small[j]; big_small[j]=big_small[j-1]; big_small[j-1]=tmp[j]; } else tmp[j]=big_small[j]; } rato_num_a[m]=j+1; m++; } cout << endl; for(i=0;i<6;i++) { cout << "出現機率第 " << i+1 << " 高的數字: " << rato_num_a[i] << "\t次數: " << big_small[i] << endl; //cout << "最多的次數:" << big_small[i] << endl; } cout << endl << endl; system("PAUSE"); //暫停程式執行 return 0; //程式正常結束,傳回0 } 希望得到的正確結果: 現在最高機率的前6項,為何沒有正確透出數字?如...出現機率第 1 高的數字: "這裡有問題" 次數: 23(次) 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) VC++ 2008 補充說明: 可能是我的語法有誤,能否給予指導...謝謝..^^ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.133.74.124

12/01 10:41, , 1F
for迴圈i++,cout又i+1 ?
12/01 10:41, 1F

12/01 18:34, , 2F
bigsmall索引表示號碼,內容是累計;你做排序的是累計..
12/01 18:34, 2F

12/02 16:30, , 3F
我的作法好像把出現的數字跟次數分離了,要怎麼改才好?!
12/02 16:30, 3F
文章代碼(AID): #1B57fXQp (C_and_CPP)
文章代碼(AID): #1B57fXQp (C_and_CPP)