c
文章平均质量分 58
LSGOZJ
每天一个台阶!!!
展开
-
最小二乘法拟合y=ax+b 线性函数
#include "stdafx.h"#include <iostream>#include <string>#include <vector>using namespace std;class zuixiaoerchengfa{public: zuixiaoerchengfa(vector<double> x, vector<double> y) { double t1=0, t2=0, t3=0, t4=0; .转载 2021-02-22 20:32:44 · 3318 阅读 · 0 评论 -
KMP算法学习分享
问题:文本串 S = “BBC ABCDAB ABCDABCDABDE”模式串 P = “ABCDABD”找出 P 在 S 中的位置。一、 暴力匹配算法:过程分析:1、 S[0]为B,P[0]为A,不匹配,则 i往后移动一位,j 回到开头,即 i = i – j + 1, j = 0。相当于模式串往右移动一位(i = 1,j = 0)2、 S[1]跟P[0]还是不匹配,则 i往后移动一位转载 2017-12-07 22:16:30 · 310 阅读 · 0 评论 -
C语言中柔性数组的学习
在日常的编程中,有时候需要在结构体中存放一个长度动态的字符串,一般的做法,是在结构体中定义一个指针成员,这个指针成员指向该字符串所在的动态内存空间,例如:typedef struct test { int a; double b; char *p; };p指向字符串。这种方法造成字符串与结构体是分离的,不利于操作。如果转载 2017-09-22 10:11:15 · 703 阅读 · 0 评论 -
尾递归的学习
递归与尾递归总结 前言:今天上网看帖子的时候,看到关于尾递归的应用(http://bbs.csdn.net/topics/390215312),大脑中感觉这个词好像在哪里见过,但是又想不起来具体是怎么回事。如是乎,在网上搜了一下,顿时豁然开朗,知道尾递归是怎么回事了。下面就递归与尾递归进行总结,以方便日后在工作中使用。1、递归 关于递归的概念,我们都不陌生。简单的来说递归就是一个函数直接或间接地转载 2017-08-29 09:44:51 · 686 阅读 · 0 评论 -
单链表排序
前言:最近总结了一下针对只有头结点的单链表进行排序的几个简单的方法。交换节点:插入排序,冒泡排序,简单选择排序 交换数据:快速排序初始化:#include <stdio.h>#include <stdlib.h>#include <stdbool.h>//节点结构struct node{ int val; struct node * next;};typedef str转载 2017-09-03 20:38:22 · 52451 阅读 · 17 评论 -
单链表翻转
单链表的翻转也算是面试中常见的面试题目了,本文根据网上查阅的资料给大家总结了两种方法。准备:首先,我们先来看我们节点和函数的定义,以及客户端应用:#include <stdio.h>#include <stdlib.h> //提供malloc()//节点结构struct Node{ int val; struct Node * next;};typedef struct N原创 2017-03-21 22:30:24 · 631 阅读 · 0 评论 -
判断单链表是否有环
前言:其实这个题目是面试官给提的,由于当时在学习数据结构与算法的时候没有接触过这类问题,因此通过在网上查阅资料和自己的理解产生这篇博客,希望能帮得到大家。如下面的单链表:如何判断该链表中是否存在环。方法一:使用 p、q 两个指针,p 总是向前走,但 q 每次都从头开始走,对于每个节点,看 p 走的步数是否和 q 一样。如果对于每个节点,p、q 走过的步数都是一样的,则证明不存在环,反之,存在环。代码原创 2016-12-28 18:21:46 · 755 阅读 · 0 评论 -
C语言实现贪吃蛇(四)----游戏存档读档(文件操作)
前言:对于C语言的初学者来说,可能会觉得文件操作是一个比较陌生的领域,但实际上无论编写怎样的程序文件操作都是必需的。在操作系统中,所有的外围设备(包括键盘和显示器)都被看作是文件系统中的文件,因此所有的输入/输出都要通过读文件/写文件完成。启动一个C语言程序时,操作环境负责打开标准输入,标准输出,标准错误3个文件,并将这3个文件的指针提供给该程序。而我们熟知的 getchar 函数 putchar转载 2016-11-18 19:50:51 · 19926 阅读 · 4 评论 -
C语言实现贪吃蛇(五)----图形界面版
在我的上一篇博客《 C语言实现贪吃蛇(四)—-游戏存档读档(文件操作)》中,我还说着要紧跟着原作者的脚步,继续捣鼓这个贪吃蛇游戏的,但当我看到代码的时候,我就感觉自己真的是啪啪打脸了。毕竟我从没接触过 win32 编程,因此那些代码对我来说就是天书!啥也别说了,在这里我给出原作者的地址,大家自个儿看去吧:《C语言实现贪吃蛇之图形界面篇 》转载 2016-11-18 20:12:23 · 5245 阅读 · 1 评论 -
C语言实现贪吃蛇(三)----结构+链表实现
前言:本博客所讲到的知识跟前面我的两篇博客:《C语言实现贪吃蛇(一)—-数组实现》、《C语言实现贪吃蛇(二)—-局部刷新》 有很大的关系,建议大家前往看一下,尤其是第一篇,那篇博客是所有关于贪吃蛇游戏的基础。之前的两篇博客将运用的C语言知识限定在了一般的数组上,但如果已经完整地了解过C语言的话,运用结构和链表会让程序的结构更明了,逻辑更清晰。这篇博客就将介绍如何用结构和链表改善之前的程序。程序实现:转载 2016-11-17 22:42:20 · 10441 阅读 · 2 评论 -
C语言实现贪吃蛇(二)----局部刷新
前言:在上一篇博客《C语言实现贪吃蛇(一)—-数组实现》,我们使用数组来存储坐标,并且不断的通过全屏刷新的方式来实现蛇移动的动态效果。但是全屏刷新使得该游戏整个过程中的闪烁现象,究其原因,无非就是在于频繁的清空与打印。但是想想看,整个游戏过程中并不需要重复打印整个界面,比如围墙,比如未被吃掉的食物。要实现蛇的移动,我们只要打印出新的蛇头,清除原来的蛇尾就好了。食物只有在被吃掉时才需要重新打印,边界更转载 2016-11-17 21:16:28 · 6520 阅读 · 0 评论 -
C语言实现贪吃蛇(一)----数组实现
本人是一个C语言新手,在网上看到有的人用C实现了贪吃蛇的游戏,想着为了巩固一下自己的C语言,然后就学着写了一个,当然基本上是Copy别人的代码,然后加上自己的理解。在这里做一下记录,也希望能够帮助那些跟我差不多的同学。一、贪吃蛇实现原理:贪吃蛇游戏在理论上是可以无限的进行下去的(除了撞墙和咬到自己),那么游戏主体就一定是个循环。蛇是如何动起来的?在这里就是通过不断改变蛇的坐标,然后根据蛇的坐标不原创 2016-11-16 22:54:16 · 20205 阅读 · 7 评论 -
C语言读取指定文件夹下的所有文件(各种信息)
前言:由于在做老师布置的作业过程中需要用到读取文件夹下所有文件的功能,由于之前还没有用 C 语言试过,后面还是通过各种百度之后才解决掉。在这里做个记录,以后查阅方便。分析:1、头文件: 要实现我们浏览某文件夹下各种文件信息的功能,我们首先得引入对应的头文件:#include <io.h>该头文件包含用于存储文件信息的结构体和读取文件的各种操作。2、存储文件信息的结构体:这个存储文件信息的结构体的的原创 2016-11-09 14:12:24 · 37138 阅读 · 6 评论 -
什么变量在堆内存里存放,什么变量在栈内存里存放
堆和栈的区别 (stack and heap)一般认为在c中分为这几个存储区 1栈 - 有编译器自动分配释放 2堆 - 一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收 3全局区(静态区),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。 程序结束释放。 4另外还有一个专门放常量的地方转载 2016-08-29 18:43:26 · 18740 阅读 · 1 评论 -
由动态分配和静态分配的数据在内存组成区别
在c中使用molloc,free动态分配释放内存,而在c++中可以使用new delete运算符。比如在c中定义数组我们可以有两大种方式: 1,静态分配内存:如: int a[10]; 2,使用new动态定义:如: int *p = new int[10];那么这两种方法有什么区别呢??c/c++程序占用的内存分为以下几个部分1,栈区(stack); 由编译器自动转载 2016-07-11 12:22:55 · 1366 阅读 · 0 评论