IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C语言生成指定长度的乱序数组 -> 正文阅读

[C++知识库]C语言生成指定长度的乱序数组

作者:recommend-item-box type_blog clearfix

最近有个需求,需要动态生成一个不定长的乱序数组,用于每次生成一个指定长度随机播放列表(最长256)。
于是有了下面一段测试代码。主要思路是创建一个长度为256的数组,然后在需要的时候,打乱前面数量为len的数组元素,使用的时候也只使用前面len个元素即可。

#include "stdlib.h"
#include "stdio.h"
#include "time.h"

uint8_t play_list[256];

void play_list_init()
{
    for (int i = 0; i < 256; i++)
    {
        play_list[i] = i + 1;
    }
}

void swap(uint8_t *value_a,uint8_t *value_b)
{
	uint8_t value;
	value=*value_a;
	*value_a=*value_b;
	*value_b=value;
}

void new_play_list(uint8_t len)
{
    play_list_init();
    
    for(uint8_t i = len; i > 1 ; i--) 
    {
    	srand((unsigned)time(NULL));
        uint8_t random_position=len-i+(rand()%i);
        swap(&play_list[random_position], &play_list[len - i]);
    }
    printf("Len:%d\r\n", len);
    for (uint8_t j = 0; j <len; j++)
    {
        printf("%d ", play_list[j]);
    }
    printf("\r\n");
}

int main()
{
    uint8_t n = 5;
    new_play_list(n);
    n = 6;
    new_play_list(n);
    n = 8;
    new_play_list(n);
    n = 10;
    new_play_list(n);
    return 0;
}

测试了一下还不错,够用了。结果输出如下:

Len:5
3 4 5 1 2 
Len:6
2 5 4 3 1 6 
Len:8
4 2 8 7 1 6 3 5 
Len:10
8 7 4 10 2 9 1 5 6 3 
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-08-25 12:01:58  更:2021-08-25 12:03:30 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年12日历 -2024/12/27 6:49:34-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码
数据统计