[問題] *_*樂透的一個問題
遇到的問題: (題意請描述清楚)
#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
12/01 10:41, 1F
推
12/01 18:34, , 2F
12/01 18:34, 2F
→
12/02 16:30, , 3F
12/02 16:30, 3F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章