作者kkman2009 (uglyman)
看板C_and_CPP
标题[问题] *_*乐透的一个问题
时间Tue Dec 1 10:07:27 2009
遇到的问题: (题意请描述清楚)
#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
1F:推 lwecloud:for回圈i++,cout又i+1 ? 12/01 10:41
2F:推 snowlike:bigsmall索引表示号码,内容是累计;你做排序的是累计.. 12/01 18:34
3F:→ kkman2009:我的作法好像把出现的数字跟次数分离了,要怎麽改才好?! 12/02 16:30