求答一个C++题(10分)

来源:百度知道 编辑:UC知道 时间:2024/06/10 23:29:42
请问大家一个C++方面的问题:彩票问题,随机产生一个6位数字的号码,每个数字的范围是0到9之间,但这6个数字中不能有相同的,即完全不同的6个数。
可能我的语言表述有问题,不知道大家有没有搞懂我说的,以前看到过这种题,不会做,大致就是这样,谢谢大家帮忙(在线等)~~~
就是写一个C++程序,随机产生一个6位数,但各个数都不相同

#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int main(void)
{
int i;
time_t t;
srand((unsigned) time(&t));
//printf("Ten random numbers from 0 to 99\n\\n");
for(i=0; i<6; i++)
printf("%d", rand() % 10);
return 0;
}

你想要问什么?

用数学的方式给你解决:P99C91C96

简单的说,
每次设置一个随机数种子,产生一个随机数;
检查产生的随机数是不是已经存在,保存和已有随机数不同的数;

int iAry[6]={0}; //存放结果
for( int i=0; i<6; i++ )
{
iAry[i] = rand()%10; //获取随0~9机数
for( int j=0; j<i; j++ ) //遍历存放的数组中是否有相同的数字
{
if( iAry[i] == iAry[j] )
{
i--; //有重复的数字重新获取,跳出内层循环
break;
}
}
}

你播种子的时候播系统时间就可以了。

随手写的,有错误的 请楼下的更正