![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C/C++应用
学习C和C++之后的一些拓展应用,算不上高级开发
头秃程序员_
从一而终
展开
-
文本文件和二进制文件之间的准换
本程序要自己创建个文本格式的输入文件a1.txt,编译后能将文本文件前255字节以内的字符转换成相应的AscII码值的二进制表示,并存入输出文件a2.txt中。然后再将二进制文件还原并存入a3.txt文件。具体代码如下:#include <cstdio>#include <stdio.h>#include <string.h>#define N...原创 2018-05-29 15:23:43 · 11856 阅读 · 0 评论 -
文件的初步操作2
文件的顺序读写: 一个文件打开后可以对它进行续写操作。所有对文件的读写操作都可以调用文件读写库函数来实现。下面是常用的读写库函数:1&gt;字符读写函数:每次读或写一个字符,使用fgetc()和fputc()函数。 2&gt;字符串读写函数:每次读或写一行字符,以换行符终止使用fgets()和fputs()函数。 3&gt;数据块读写函数:每次读或者写某种数量的对象,而每个对象具有指定长...原创 2018-05-22 15:32:58 · 127 阅读 · 0 评论 -
文件的初步操作1
文件类型指针: 在缓冲文件系统中系统为每个 需要才做的文件开辟一个缓冲区域,这个缓冲区域包含文件的名字路径等信息,这些都封存再一个文件类型指针中,具体内详见文件的初步认识1中有具体的定义。 文件的初步认识C语言将该结构定义类型为FILE,简称文件类型,利用文件类型FILE可以定义文件类型变量,用于存放缓冲区的文件信息。也可以定义文件指针,用于指向文件缓冲区。(较常用)对于常用的设备文件...原创 2018-05-15 15:32:47 · 131 阅读 · 0 评论 -
C语言文件的初步认识
文件是一种信息的存储方式,它指一组已经命名的,存储的在外存储器上的,具有相同性质的信息的集合,文件在程序设计中是一个重要的概念,一个程序的运行往往避免不了要从文件中提取一些数据等。。文件的概述:文件时信息的集合,是信息形成的数据流。每个文件都有一个文件名来识别这个文件。 简历了一个树状的层次结构的目录进行管理,文件被存放在不同层次的目录中。文件由路径和文件名唯一确定。C语言本身没有直接输入输...原创 2018-05-15 14:20:56 · 210 阅读 · 0 评论 -
sort函数和stable_sort函数的区别
你发现有sort和stable_sort,还有 partition 和stable_partition, 感到奇怪吧。其中的区别是,带有stable的函数可保证相等元素的原本相对次序在排序后保持不变。或许你会问,既然相等,你还管他相对位置呢,也分不清 楚谁是谁了?这里需要弄清楚一个问题,这里的相等,是指你提供的函数表示两个元素相等,并不一定是一摸一样的元素。例如,如果你写一个比较函数:bo...原创 2018-08-04 20:04:00 · 1425 阅读 · 2 评论 -
next_permutation函数
next_permutation的函数声明:#include bool next_permutation( iterator start, iterator end);next_permutation函数的返回值是布尔类型,在STL中还有perv_permutation()函数#include <iostream> #include <algorithm>...原创 2018-05-29 21:12:32 · 3105 阅读 · 2 评论 -
队列和栈的操作
队列和栈的简单操作。原创 2018-05-27 20:54:27 · 379 阅读 · 0 评论 -
关于sort
起来自己天天排序排序,冒泡啊,二分查找啊,结果在STL中就自带了排序函数sort,qsort,总算把自己解脱了~所以自己总结了一下,首先看sort函数见下表: 函数名 功能描述 sort 对给定区间所有元素进行排序 stable_sort 对给定区间所有元素进行稳定排序 partial_sort 对给定区间所有元素部分排序 partial_sort_copy ...原创 2018-05-16 14:56:37 · 148 阅读 · 0 评论 -
C++中sort函数的排序
C++sort()函数的用法 近来看了c++标准库这本书,学到了很多,就把这其中的一点C++sort()函数的用法写下来和大家分享吧! (一)为什么要用c++标准库里的排序函数 Sort()函数是c++一种排序方法之一,学会了这种方法也打消我学习c++以来使用的冒泡排序和选择排序所带来的执行效率不高的问题!因为它使用的排序方法是类似于快排的方法,时间复杂度为n*log2(n),执行效率较高!...原创 2018-05-16 14:43:16 · 965 阅读 · 0 评论 -
文件的初步认识2
缓冲文件系统:C语言对文件的操作提供两种方式:缓冲文件系统I/Q 和 非缓冲文件系统I/Q1缓冲文件系统中,系统在内存中为正在被使用的文件开辟一个缓冲区域,当程序从磁盘文件读取数据的时候,一次性的将文件读入缓冲区,再从缓冲区将数据诸葛读出传给程序中的结束变量。当磁盘文件输出的时候,先将程序中的数据写入缓冲区,等缓冲区满了以后,在一次性的一起传给磁盘文件。分为全缓冲(标准缓冲区满了以后再操作...原创 2018-05-15 14:31:35 · 124 阅读 · 0 评论 -
求两个数的最大公约数的三种算法
从键盘输入两个整数,求着两个整数的最大公约数。解题思路:从键盘输入两个数,通过以下的三个方法实现求两个数的最大公约数: 辗转相除法:取两个数中最大的数做除数,较小的数做被除数,用最大的数除较小数,如果余数为0,则较小数为这两个数的最大公约数,如果余数不为0,用较小数除上一步计算出的余数,直到余数为0,则这两个数的最大公约数为上一步的余数。相减法:取两个数中的最大的数做减数,较...转载 2018-08-01 22:55:22 · 5164 阅读 · 0 评论 -
队列和栈的基本模板
Each problem’s first line is a integer N(the number of commands), and a word “FIFO” or “FILO”.(you are very happy because you know “FIFO” stands for “First In First Out”, and “FILO” means “First In La...原创 2018-08-02 23:13:07 · 345 阅读 · 0 评论 -
priority_queue
priority_queue priority_queue 优先队列,其底层是用堆来实现的。在优先队列中,队首元素一定是当前队列中优先级最高的那一个。 在优先队列中,没有 front() 函数与 back() 函数,而只能通过 top() 函数来访问队首元素(也可称为堆顶元素),也就是优先级最高的元素。一、基本数据类型的优先级设置 此处指的基本数据类型就是 int 型,doubl...转载 2018-08-15 19:22:42 · 244 阅读 · 0 评论 -
字符串处理函数::sprintf函数
首先spintf函数不在string头文件中,而是在stdio头文件中, 他是把数据写入字符串,而非在屏幕上打印,该函数可以把多个元素组合成一个字符串 spintf函数得到第一个参数是目标字符串的地址,其余参数和printf函数相同...原创 2018-08-30 23:18:00 · 486 阅读 · 0 评论 -
二维数组在作为函数的参数的各种传值总结
看到一位老哥总结的挺全面的,是我见过的写的最好的,也容易懂https://blog.csdn.net/lizi_stdio/article/details/74502986这是它的csdn博客,有时间可以看一下巩固一下...转载 2019-02-28 21:06:58 · 4206 阅读 · 0 评论 -
杨辉三角(一)正置
下面是杨辉三角 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10...原创 2019-03-19 15:39:03 · 726 阅读 · 1 评论 -
高精度将分数转化为小数(c/c++)
思想:模拟手工除法进行转换输入分数a/b 精确到c位,将小数形式输出:#include<iostream>#include<cstdio>using namespace std;//高精度将分数转化为小数: int main(){ int a,b,c; //输入a/b是分数,精确到c位 int kbase=0; while((scanf("%d%d%...原创 2019-03-07 16:55:33 · 3709 阅读 · 2 评论 -
关于素数打表
一些编程题目常常牵扯到素数的问题以前,基础算法比较少,常采用挨个数字验证的方法,即:对于每一个数组,用for循环对因数试探,这未免太浪费时间和空间随后阅读到算法导论,其中牵扯到欧几里得素数筛选法,即:素数的倍数一定不是素数然后经过算法优化:方法进行时需要两个数组,一个当作标记数组,在循环打表时候用0和1标记,第二个数组就是存储素数的数组。void init(){ for(long...原创 2019-05-22 15:47:03 · 109 阅读 · 0 评论 -
C++ stl队列Queue用法介绍:删除,插入等操作代码举例
C++队列queue模板类的定义在头文件中,queue 模板类需要两个模板参数,一个是元素类型,一个容器类型,元素类型是必要的,容器类型是可选的,默认为deque 类型。 C++队列Queue是一种容器适配器,它给予程序员一种先进先出(FIFO)的数据结构。C++队列Queue类成员函数如下:back() 返回最后一个元素empty() 如果队列空则返回真front(...转载 2018-05-21 20:10:05 · 9630 阅读 · 0 评论 -
跳一跳C语言游戏辅助开发,我的辅助成长
一、开发环境开发环境使用语言:C/C++IDE:VS2010+ 其他三方库 EasyX(http://www.easyx.cn/downloads/) ADB(链接: https://pan.baidu.com/s/1nxrBXTB 密码: sfti) ADB环境变量配置 打开adb文件夹,将此路径添加到环境变量中; 手机使用数据线连接电脑,并打开USB调试; 打开cmd...原创 2018-04-28 17:38:51 · 1750 阅读 · 0 评论 -
C语言实现程序的暂停
在C语言中有时候需要实现程序的暂停:在某一步暂停一下,或者需要实现人工控制程序进度。这个时候需要加上几个常用的函数来实现,下面有两种方法::1> system(“pause”); 这种方法需要加上头文件#include #include int main(void){printf("I need a pause here.\n");system("pause"原创 2018-01-21 19:51:05 · 71578 阅读 · 1 评论 -
冒泡排序<我的算法成长经历>
桶排序在时间和空间占用上可以说是非常巨大,比如要对一组五个数字排序,但里边有一个非常大的数字1999909,这个时候就需要申请一个非常大的数组,a[1999909],可见咋空间复杂度和时间复杂度非常高,而且非常浪费,这个时候冒泡排序法就展现出它的特点了: 冒泡排序:: 这里有一个形象的代名词:邻居好说话,就是说相邻的两个数交换,冒泡排序的原理是每一趟只能将一个数归位,这就体现出原创 2018-01-24 12:12:18 · 164 阅读 · 0 评论 -
桶排序<我的算法成长经历>
桶排序: 桶排序是最早的计算机程序算法之一,刚刚在阅读《啊哈算法》中接触,以前也这样子用过,不过没有一个正统的名字。这里简单的介绍一下桶排序: 所谓的桶排序(简单)就是利用一个一维数组进行排序,给其标记,仅仅对数字起作用,数组下标表示数字,数组大小表示出现几次,然后用printf对其打印。 举例:#includeint main(){ in原创 2018-01-22 16:47:04 · 143 阅读 · 0 评论 -
快速排序法
要知道,,冒泡排序法时间复杂度为o(n2),假如我们的计算机每秒钟可以运行 10 亿次,那么对 1 亿个数进行排序,桶排序只需要 0.1 秒,而冒泡排序则需要 1 千万秒,达到 115 天之久,是不是很吓人,可谓是时间复杂度非常高,,有一位国外教授曾经说过,冒泡排序除了他有一个好听的名字和简单的理解之外,没有任何推荐的价值。(桶排序浪费空间,冒泡排序浪费时间) 于是,接下来要选择一种更加...原创 2018-02-11 17:34:33 · 204 阅读 · 0 评论 -
买书问题
有一些同学要去书店买书: 输入有 2 行,第 1 行为一个正整数,表示有 n 个同学参与调查(n≤100)。第 2 行有 n 个用空格隔开的正整数,为每本图书的 ISBN 号(假设图书的 ISBN 号在 1~1000 之间)。 输出也是 2 行,第 1 行为一个正整数 k,表示需要买多少本书。第 2 行为 k 个用空格隔开的正整数,为从小到大已排好序的需要购买的图书的 ISBN 号。 举...原创 2018-03-23 22:42:25 · 642 阅读 · 0 评论 -
判断回文串----栈的实现
栈的实现只需要一个一维数组和一个指向栈顶的变量 top 就可以了。我们通过 top 来对栈 进行插入和删除操作。解题思路:首先我们需要读取这行字符串,并求出这个字符串的长度,如果一个字符串是回文的话,那么它必须是中间对称的,我们需要求中点,中点 之前的字符全部入栈。因为这里的栈是用来存储字符的,所以这里用来实 现栈的数组类型是字符数组即 char s[101];,初始化栈很简单,top...原创 2018-03-24 10:50:35 · 1140 阅读 · 0 评论 -
队列
队列将是今后学习广度优先搜索以及队列优化的 Bellman-Ford 短路算法的核心数据结构。 本文章通过一个小小的故事来说明队列的应用及其队列的意义: A告诉B一串数字并且告诉B解密规则,让B界闯出QQ号是多少,现在这串数字是6 3 1 7 5 8 9 2 4然后解密的规则是:首先将第 1 个数删除,紧接着将第 2 个数放到这串数的末尾,再将第 3 个数删除并将第 4 个数放到这串数的末...原创 2018-04-12 17:42:09 · 271 阅读 · 0 评论 -
模拟链表
如果你觉得用指针操作的链表不好弄,那么还有一种方法实现像链表那样实现对数据的处理:模拟链表。链表中的每一个结点只有两个部分。我们可以用一个数组 data 来存储每序列中的每一个数。那每一个数右边的数是谁,这一点该怎么解决呢? 上一节中是使用指针来解决的,这里我们只需再用一个数组right来存放序列中每一个数右边的数是谁就可以了 上图的两个数组中,第一个整型数组 data 是用来存放序列中...原创 2018-04-23 14:37:22 · 1533 阅读 · 1 评论 -
单链表专题
单链表涉及到初步的动态规划,以前所用的数组等都是静态存储某些东西,通过单链表的建立我们接触一下动态规划,这将及其节省存储空间提高空间利用率。每个链表都少不了指针头指针指向单链表的第一个节点,是链表操作的唯一入口。 单链表的最后一个结点没有后继结点因此指针域为空例如一个简单的结点:struct Node //结点的结构体类型定义{ int data...原创 2018-04-30 21:17:57 · 306 阅读 · 0 评论 -
单链表的访问。
单链表的访问: 只要我有头指针head,就可以通过其成员next继而找到下一个结点,以此类推可以访问所有的结点。 所谓的访问可以理解为取各个结点数据域的值进行一系列的操作,输出单向链表各个结点的数据域是最简单的访问链表的操作。将链表中各个结点数据一次输出的步骤主要如下: (1),找到链表的头指针 (2),若链表非空,则输出结点的成员值。否则退出 (3),寻找下一个结点 (4),转到...原创 2018-04-30 22:19:50 · 3212 阅读 · 0 评论 -
栈
上节学习了一种先进先出的数据结构——队列 这一节将要学习一种先进后出的一种数据结构——栈举个例子: 比如说有一个小桶,小桶的直径只能放一个小球,我们现在小桶内依次放入 2、1、3 号小球。假如你现在需要拿出 2 号小球,那就必须先将 3 号小球拿出,再拿出 1号小球, 后才能将 2 号小球拿出来。在刚才取小球的过程中,我们 先放进去的小球 后才能拿出来, 后放进去的小球却可以 先拿出来。...原创 2018-04-14 11:00:41 · 148 阅读 · 0 评论 -
链表的插入
上一节简单的介绍了链表的简单访问,这一节将更具体的介绍链表的插入与删除操作: 作为动态存储数据的链表,他有着静态存储(例如数组等)不具有的优势,能够随时的开辟新的存储单元。 例子: 例如已经有一个学生信息构成的链表,各个结点是按照学号排列的,突然发现有一个学生的信息漏掉了,需要插入进去,这个时候就用到了链表的插入操作:要在链表中包含值X的结点之前插入一个包含值y的结点(按条件插入),过程...原创 2018-05-01 18:36:26 · 714 阅读 · 0 评论 -
单链表的删除
从一个动态链表中删除一个结点就是将该系欸但从链表中分离出来,并不是真正的从内存中将该节点抹去,只需要改变连接关系就行了。 重点语句:p1->next=p2->next;将下一个结点的地址赋给前一个结点的地址域即可。例子:编写函数del,在单向链表中删除一个结点。 分析:本题目所需要的建立链表输出链表和前几节都一样,特殊的是del这个删除操作的函数。#includ...原创 2018-05-02 21:29:54 · 284 阅读 · 0 评论 -
链表的综合应用
编写一个函数实现对学生数据的操作,每个学生结点包括学号和一门课程的成绩。 要求:1输入若干学生的学号和成绩建立链表 2根据学号删除指定的学生结点 3插入给定的学生结点 4对链表进行输出 源代码:#include<stdio.h>#include<stdlib.h>struct no...原创 2018-05-03 18:18:08 · 703 阅读 · 0 评论 -
GUI与CUI程序区别
应用程序类型 控制台用用程序CUI: 控制台程序是基于文本的,他一般不会创建窗口或者进程消息而且不需要GUiGUI(图形用户界面) GUI是图形化的前端,可以创建窗口,可以拥有菜单,能通过对话框与用户进行交互,能够使用标准的视窗化的标准,在window中几乎所有的应用附件程序都是GUI程序。区别 1 在vs中,CUI程序的连接器开关为/SUBSYSTEM:CONSOLE, ...原创 2018-04-25 21:28:07 · 8833 阅读 · 0 评论 -
动态内存分配和链表
首先考虑这样一个问题: char t[10]=”hi”: char *p=”hi” 两者的区别: 可以清除的看到,第一个内存的动态存储区,第二个为内存的静态存储区,对于第二个而言,hi是常量所以不能够修改指针指向的地址其中的数据不能够做动态改变。1>动态内存分配: 1.malloc函数:void *malloc(unsigned int size)解释:在内存的动态...原创 2018-04-26 17:55:37 · 5009 阅读 · 4 评论 -
贪吃蛇
话不多说上代码:#include<stdio.h>#include<time.h>#include<windows.h>#include<stdlib.h>#define U 1#define D 2#define L 3#define R 4 //蛇的状态,U:上 ;D:...原创 2018-04-26 17:56:40 · 395 阅读 · 0 评论 -
字符型转化为数字型
本篇介绍由字符型转化为整型:1>利用函数转化: 加头文件stdlib.h然后利用函数atoi()进行转化 例子:#include#includeint main(){ char s[20]; int sum; scanf("%s",s); sum=atoi(s);原创 2018-02-01 11:14:35 · 2078 阅读 · 0 评论