C语言qsort函数、活字印刷、cmd窗口

news2024/9/29 9:20:02

一、qsort函数

qsort函数就是快排,可以不用写那么一长串的代码了qvq,要用到stdlib.h库文件

那么具体用法就是

oid qsort(void* base,size_t num,size_t width,int(__cdecl*compare)(const void*,const void*));

当然我们还要用一个比较函数来确定快排的升序,也就是cmp

 对于不同的类型,我们有不同的比较方法

int型

int num[100];
int cmp_int(const void* _a , const void* _b)  //参数格式固定
{
    int* a = (int*)_a;    //强制类型转换
    int* b = (int*)_b;
    return *a - *b;  
}

qsort(num,100,sizeof(num[0]),cmp_int); 

char型

char word[100];
int cmp_char(const void* _a , const void* _b)  //参数格式固定
{
    char* a = (char*)_a;    //强制类型转换
    char* b = (char*)_b;
    return *a - *b;  
}

qsort(word,100,sizeof(word[0]),cmp_char); 

字符串

char word[100][10];
int cmp_string(const void* _a , const void* _b)  //参数格式固定
{
    char* a = (char*)_a;  //强制类型转换
    char* b = (char*)_b;
    return strcmp(a,b);
}

qsort(word,100,sizeof(word[0]),cmp_string);

二、活字印刷

思路 

这个题就是用dfs进行搜索,但是要思考的是有些组合要不能重合,所以就需要我们进行剪枝,我们先将数组进行排序,那么这个时候相等的字符就会放在一起,当我们搜索到第二个的相同的字母的时候,我们就会进行判断,将一些相同的组合剪去

代码实现


int cmp(const void *a,const void *b){    //比较
    return *(char*)a-*(char*)b;
}

void dfs(char *tiles,int n,int *dis,int *x)
{
    for(int i=0;i<n;i++)
    {
        if(dis[i]==1)continue;       //已经搜索过的就不用搜索了
        //同一层的递归中,不能出现相同的组合
        if(i>0&&dis[i-1]==0&&tiles[i]==tiles[i-1])continue;   
        (*x)++;
        dis[i]=1;
        dfs(tiles,n,dis,x);
        dis[i]=0;        //回溯
    }
}

int numTilePossibilities(char * tiles){
    int n=(int)strlen(tiles);
    int dis[n];
    memset(dis,0,sizeof(dis));
    int x=0;
    qsort(tiles,n,sizeof(char),cmp);
    dfs(tiles,n,dis,&x);
    return x;
}

三、cmd窗口

cmd窗口相当于计算机的控制窗口吧,它可以利用命令来实现一些操作

进入

win + r 输入cmd

 环境变量

可以将不属于一个磁盘下的文件直接打开,也就是将其记录,记录之后,就算不在同目录下,也能在环境变量中寻找

作用

对于一些常用软件很容易的打开,而不用一个一个输入,显得太过复杂

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/545824.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

手机APP性能测试工具PerfDog性能狗安装教程及简单使用

一、前言 PerfDog是一个由腾讯研发的主流性能测试软件。可以提高软件和游戏的运行效率&#xff0c;支持iOS/安卓在移动平台上的性能测试和分析&#xff0c;快速定位和分析性能问题等。无需安装&#xff0c;即插即用&#xff0c;减少繁琐的测试障碍&#xff0c;安卓设备不需要RO…

PCB基础~PCB介质,Vias

PCB介质 • 一般的介质材料 – FR-4&#xff08;玻璃纤维和环氧基树脂交织而成&#xff09; • 最常和最广泛使用&#xff0c;相对成本较低 • 介电常数&#xff1a;最大4.7&#xff0c; 4.35500Mhz,4.341Ghz • 可承受的最高信号频率是2Ghz(超过这个值&#xff0c;损耗和串扰…

IDEA中怎么把jar包导入项目中

大作业让生成一个pdf&#xff0c;查找资料发现可以通过pdfbo相关函数调用&#xff0c;但本地缺少这个文件&#xff0c;以这个文件为例子。 一、下载 下载去Apache上下载&#xff0c;Apache PDFBox | Download&#xff0c;&#xff0c;结合自己的java版本啥的下载就行。 我是…

java中使用java8的stream报错java.lang.IllegalStateException: Duplicate key

一、java.lang.IllegalStateException: Duplicate key报错的原因 map的key重复导致的报错Duplicate key 二、java.lang.IllegalStateException: Duplicate key报错的解决方式 list.stream().collect()就是把一个List的查询数据集合转为一个Map&#xff0c;java8的stream方式…

UE5 C++类如何打印日志?

UE5 插件开发指南 前言0. 什么是日志?1.在哪里可以查看日志呢?2. 日志有哪些等级?3. 如何打印到屏幕上?4. 如何更专业的记录日志?4.0 UE_LOG宏语法4.1 自定义日志类别4.2 插件中的日志类别定义前言 在回答这个问题之前,先要给萌新科普一下:什么是日志?以及,在哪里查看日…

自己动手写一个加载器

前言 当在 linux 命令行中 ./ 运行一个程序时&#xff0c;实际上操作系统会调用加载器将这个程序加载到内存中去执行。为了探究加载器的行为&#xff0c;今天我们就自己动手写一个简单的加载器。 工作原理 加载器的工作原理&#xff1a; 从磁盘读取 bin 文件到内存&#xf…

【Python html常用标签】零基础也能轻松掌握的学习路线与参考资料

学习路线 要深入了解Python html常用标签&#xff0c;需要遵循以下学习路线&#xff1a; 1.1 HTML基础知识&#xff1a;了解HTML语言的起源&#xff0c;HTML文档结构和基本标签。学习HTML标签包含但不限于文本标签&#xff0c;图像标签&#xff0c;链接标签&#xff0c;表格标…

canvas的HTML和JavaScript

文章目录 一、canvas元素二、前期准备1. 坐标系2. canvas属性① 获取canvas元素② 把canvas实例化为2D③ 设置路径颜色④ 设置路径宽度⑤ 设置路径末端形状⑥ 设置路径相连时的相连部分形状⑦ 透明度⑦ 虚线 三、绘制图行1. 绘制线段2. 绘制三角形① 空心三角形② 实心三角形 3…

大学四年,我建议你这么学网络安全

在所有关注我的朋友中&#xff0c;大致分为两类&#xff0c;一类是社会人士&#xff0c;有的是安全老手&#xff0c;有的是其它工作但对安全感兴趣的朋友&#xff0c;另一类应该就是大学生了。 尤其随着国家的号召和知识的普及&#xff0c;越来越多的人开始对网络安全感兴趣&a…

ffmpeg日记1011-过滤器-语法高阶,逻辑,函数使用

Author: wencoo Blog&#xff1a;https://wencoo.blog.csdn.net/ Date: 19/05/2023 Details:文章目录 摘要什么是时间线编辑哪些filter支持时间线编辑时间线编辑中&#xff0c;可以使用哪些预设函数常用预设函数功能即使用方法if(x, y)if(x, y, z)gt(x, y)gte(x, y)lt(x, y)lte…

AHB-to-APB Bridge——04apb_tran、apb_if、apb_drv、mem、apb_mon、apb_agt

apb_if放入所有apb需要的信号&#xff0c;以及cb ifndef APB_IF_SV define APB_IF_SVinterface apb_if;logic pclk;logic prst;logic penable;logic …

C++的stack和queue

stack和queue 1.stackstack的模拟实现 2.queuequeue的模拟实现 3.容器适配器3.1. 什么是容器适配器3.2. STL标准库中stack和queue的底层结构3.3. deque的简单介绍3.3.1. deque原理介绍3.3.2. deque的缺陷3.3.3. 为什么选择deque作为stack和queue的底层默认容器 1.stack stack的…

深度学习-第T7周——咖啡豆识别

深度学习-第T7周——咖啡豆识别 深度学习-第T7周——咖啡豆识别一、前言二、我的环境三、前期工作1、导入数据集2、查看图片数目 四、数据预处理1、 加载数据1、设置图片格式2、划分训练集3、划分验证集4、查看标签 2、数据可视化3、检查数据4、配置数据集 五、搭建CNN网络六、…

Vue3+TS知识点补充

一、关于Ref 1.shallowRef() shallowRef 是 Vue 3 中新引入的响应式数据类型之一&#xff0c;它与 ref 类型非常相似&#xff0c;但是有一些不同点。 不同的是&#xff0c;shallowRef 只会对其包装的对象进行浅层次的响应式处理&#xff0c;即如果这个对象的子属性发生改变&…

软件测试——黑盒测试

1.测试概述 1.1综述 本测试报告为计算机程序能力在线测评系统的黑盒测试&#xff0c;黑盒测试可以在不知道程序内部结构和代码的情况下进行&#xff0c;用来测试软件功能是否符合用户需求&#xff0c;是否达到用户预期目标&#xff0c;是否拥有较好的人机交互体验。 图1.1 黑…

media设备节点初始化与Video4Linux初始化

media设备节点初始化与Video4Linux初始化 文章目录 media设备节点初始化与Video4Linux初始化media设备节点初始化Video4Linux初始化 media设备节点初始化 media_devnode_init函数是一个内核初始化函数&#xff0c;用于在Linux内核启动期间进行设备节点初始化。 函数的主要作用…

复习:遥感图像解译复习整理

惭愧&#xff0c;这个课程从始自终就没有认真学过&#xff0c;一部分是因为自己的原因&#xff0c;另一部分也是因为自己的原因。因此&#xff0c;对于整理的资料有不足之处请指正。 另外&#xff0c;资料自word复制&#xff0c;没有时间整理博客的格式。 -- 2023年05月19日记…

深度学习训练营之Densenet网络

深度学习训练营 原文链接环境介绍前言设计理念网络结构实验结果和讨论pytorch实现DenseNet附录 原文链接 &#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f366; 参考文章&#xff1a;365天深度学习训练营-第J3周&#xff1a;Densenet网络学习&…

第一代AIGC硬件悄然爆发

文 | 智能相对论 作者 | 叶远风 看起来&#xff0c;这可能是一副正常的黑框眼镜&#xff0c;你戴上去彬彬有礼、斯斯文文&#xff1b; 实际上&#xff0c;它里边还装了一个“小伙伴”&#xff0c;你随时可以与它交流&#xff0c;谈天说地或者提出各种问题接受它的帮助&#x…

深度学习之构建MPL神经网络——泰坦尼克号乘客的生存分析

大家好&#xff0c;我是带我去滑雪&#xff01; 本期使用泰坦尼克号数据集&#xff0c;该数据集的响应变量为乘客是生存还是死亡&#xff08;survived&#xff0c;其中1表示生存&#xff0c;0表示死亡&#xff09;&#xff0c;特征变量有乘客舱位等级&#xff08;pclass&#x…