将密码出现次数出现最多的排在前面。
由于我这里没有什么裤子,所以就只能拿数组来模拟了。
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");
}
网友评论