cp.cpp

来自「只是个洗牌函数(c语言)」· C++ 代码 · 共 54 行

CPP
54
字号
#include <stdio.h>
#include <stdlib.h>
#include<time.h>
void sp(int results[],int n); //洗牌函数
void main()
{
int results[100];//用于保存随机数
int i=0,j,n,e,t;
srand((int)time(0));//设定种子
printf("input n(n<100):");
scanf("%d",&n);//随机数个数
printf("input time:");
scanf("%d",&t);//洗牌次数
for(i=0;i<n;i++)
   results[i]=0;
for(i=0;i<n;i++)
{
e=rand()%n+1;
for(j=0;j<i;j++)
	if(results[j]==e) break;
if(i==j)results[i]=e;
else i--;
}
for(i=0;i<t;i++)
{
sp(results,n);
}
for(i=0;i<n;i++)
{
   printf("%d ",results[i]);//输出随机数
} 
}
void sp(int results[],int n)//洗牌函数
{
int e,i,j,l[100],r[100];
do{e=rand()%n+1;}
while(e==n);//取小于n的随机数
if(e>n/2) e=n-e;
for(i=0;i<e;i++)
{
l[i]=results[n-e+i];//左一摞
}
for(i=0;i<n-e;i++)
{
r[i]=results[i];//右一摞
}
for(i=0,j=0;i<n;i++,j++)//整合在一起
{
if(j<e)
{results[i]=l[j];i++;}
results[i]=r[j];
}
} 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?