|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
相当于从54张牌中不放回抽取,每次一张,直至抽完。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int i,j=0,k=0;
time_t t;
int str1[55]={0}; //0-54,一共55个数
int str2[54]={0};
for(i=0;i<55;i++);
{
str1[i]=i;
}
i=0; //重置i
srand((unsigned)time(&t));
do
{
j=rand() % 55;
if(str1[j]!=0&&j!=0)
{
k=j;
str1[j]=0; //抽过的数字直接改为0方便判断是否抽过
str2[i]=k;
i++;
}
}while(i<54);
for(i=0;i<54;i++)
{
printf("%d",str2[i]);
}
return 0;
}
可是为啥我运行后总是卡住?
本帖最后由 jhq999 于 2021-10-18 16:00 编辑
for(i=0;i<55;i++) ;
- i=0; //重置i
- srand((unsigned)time(&t));
- k=55;
- do
- {
- j=rand() % k;
- str2[i]=str1[j];
- str1[j]=str1[k-1];
- k--;
- i++;
- }while(i<54);
复制代码
|
|