⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cp.cpp

📁 只是个洗牌函数(c语言)
💻 CPP
字号:
#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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -