美文网首页C语言
【精品干货】C语言----密码概率分布

【精品干货】C语言----密码概率分布

作者: 悟空学编程 | 来源:发表于2018-04-28 19:06 被阅读0次

将密码出现次数出现最多的排在前面。

由于我这里没有什么裤子,所以就只能拿数组来模拟了。

7105(编号: 悟空)20381

【运行效果】

【代码】

#include

#include

#include

#include

#define N 30

void main()

{

//定义一个动态数组

int* Parr=(int*)malloc(sizeof(int)*N);

//对动态数组元素清零

memset(Parr, 0, sizeof(int)*N);

//获取随机数种子

srand((unsigned int)time(NULL));

//对动态数组的每一个元素赋值

for (int i = 0; i < N; i++)

{

Parr[i] = rand() % (N / 2)+1;

}

//显示动态数组状态

for (int i = 0; i < N; i++)

{

printf("%5d", Parr[i]);

if (0==(i + 1) % 5)

{

puts("");

}

}

//对动态数组进行排序

for (int i = 0; i < N - 1; i++)

{

for (int j = 0; j < N - 1 - i; j++)

{

if (Parr[j] >= Parr[j + 1])

{

//数据交换

int Temp = Parr[j];

Parr[j] = Parr[j + 1];

Parr[j + 1] = Temp;

}

}

}

puts("");

//显示动态数组状态

for (int i = 0; i < N; i++)

{

printf("%5d", Parr[i]);

if (0==(i + 1) % 5 )

{

puts("");

}

}

//定义一个结构体类型

struct PassWord

{

int Num;

int Counter;

};

//定义一个动态结构体数组

struct PassWord* PW = (struct PassWord*)malloc(sizeof(struct PassWord)*N);

//对结构体数组清零

memset(PW, 0, sizeof(struct PassWord)*N);

//PWi 结构体数组的下标

int PWi = 0;

for (int i = 0; i < N; i++)

{

//将数组的元素赋值给结构体成员 PW[PWi].Num

PW[PWi].Num = Parr[i];

//统计 Parr[i] 出现的次数

int Counter = 1;

for (int j = i; j < N; j++)

{

//判断数组第 j 个元素是否等于第 j+1 个元素

if (Parr[j] == Parr[j + 1])

{

Counter++;

}

else

{

i = j;

break;

}

}

//将统计的次数存放到结构体数组的 PW[PWi].Counter 成员中

PW[PWi].Counter = Counter;

//结构体数组下标前进

PWi++;

}

//Ibreak 记录结构体数组的中断点

int Ibreak = 0;

for (int i = 0; i < N; i++)

{

if (0==PW[i].Counter )

{

Ibreak = i;

break;

}

}

//打印结构体数组的中断点

printf("\n结构体数组的中断点 %d\n",Ibreak);

//对结构体数组进行排序,将次数出现最多的排在前面

for (int i = 0; i < Ibreak-1; i++)

{

for (int j = 0; j < Ibreak - 1 - i; j++)

{

if (PW[j].Counter <= PW[j + 1].Counter)

{

//数据交换

int Temp = PW[j].Counter;

PW[j].Counter = PW[j + 1].Counter;

PW[j + 1].Counter = Temp;

Temp = PW[j].Num;

PW[j].Num = PW[j + 1].Num;

PW[j + 1].Num = Temp;

}

}

}

puts("");

//显示结构体数组状态

for (int i = 0; i < Ibreak; i++)

{

printf("Num==%-5d Counter==%-5d\n", PW[i].Num, PW[i].Counter);

}

//释放为结构体指针数组分配的内存

free(PW);

//将结构体数组指针赋值为空,避免野指针

PW = NULL;

//释放为指针数组分配的内存

free(Parr);

//将动态数组指针赋值为空,避免野指针

Parr = NULL;

system("pause");

}

相关文章

  • 【精品干货】C语言----密码概率分布

    将密码出现次数出现最多的排在前面。 由于我这里没有什么裤子,所以就只能拿数组来模拟了。 7105(编号:悟空)20...

  • 制作的C语言经典游戏以及源代码分享,复制一下去试试玩吧

    C语言精品游戏主角和怪物源码 //C语言多线程-主角和怪物 #include #include #define b...

  • 6.概率分布

    概率分布函数 概率分布函数(Probability Distribution Function,PDF):概率分布...

  • 学习参数

    声明:概率图模型基于R语言学习笔记 独立同分布(iid.):每个变量都假设服从同样的概率分布,且每个观测又独立于数...

  • 概率分布

    几个重要的概率分布 离散型概率分布:二项分布,泊松分布,超几何分布 连续型概率分布:正态分布 由正态分布导出的几个...

  • 木东居士学习计划:第三周 数据分布(详实版)

    基本概念古典概率条件概率离散分布连续变量期望值 离散变量的概率分布二项分布伯努利分布泊松分布 连续变量的概率分布均...

  • R 语言初接触

    1.使用R 语言绘制概率密度分布图 我们现在手上有一批数据存在likecount.txt,想知道他的概率密度分布情...

  • 商务与经济统计第六章笔记

    连续性概率分布 连续性概率函数主要有三: 均匀分布,正态分布和指数分布。 1、均匀概率分布 均匀概率密度函数 连续...

  • 成为数据分析师要掌握的统计学知识(基础版)

    阅读路线: 概率介绍 离散型概率分布和连续型概率分布 抽样和抽样分布 区间估计 假设检验 概率介绍 概率是指的对于...

  • 蒙特卡罗方法

    蒙特卡罗方法的关键是得到 x 的概率分布。如果求出了 x 的概率分布,我们可以基于概率分布去采样基于这个概率分布的...

网友评论

    本文标题:【精品干货】C语言----密码概率分布

    本文链接:https://www.haomeiwen.com/subject/qsknlftx.html