C/C++
mmdnxh
在读大学生/物联网工程/
展开
-
如何使用cmd编译c/c++程序
使用实验环境为vc 6.0。其中在安装目录下X:\Program Files (x86)\Microsoft Visual Studio\VC98\Bin中有一个批处理文件VCVARS32.BAT,通过更改该文件中的连接库路径可以实现在cmd下编译执行c/c++程序。原创 2017-03-29 10:09:38 · 2135 阅读 · 0 评论 -
C.Primer.Plus(第六版)第七章 编程练习
C.Primer.Plus 第七章编程练习,仅供参考。原创 2017-04-26 15:10:09 · 543 阅读 · 0 评论 -
C.Primer.Plus(第六版)第六章编程练习
自己写的,仅供参考。C.Primer.Plus(第六版)第六章编程练习。版本:Windows 10 + vc 6.0.原创 2017-04-18 09:48:18 · 360 阅读 · 0 评论 -
C.Primer.Plus(第六版)第五章编程练习
C.Primer.Plus(第六版)第五章编程练习windows+vc 6.0原创 2017-04-18 09:58:46 · 532 阅读 · 0 评论 -
C/C++中如何获取数组的长度?
C、C++中没有提供 直接获取数组长度的函数,对于存放字符串的字符数组提供了一个strlen函数获取长度,那么对于其他类型的数组如何获取他们的长度呢? 其中一种方法是使 用sizeof(array) / sizeof(array[0]), 在C语言中习惯上在 使用时都把它定义成一个宏,比如#define GET_ARRAY_LEN(array,len) { len = (sizeof(a转载 2017-09-22 13:41:29 · 529 阅读 · 0 评论 -
归并排序
当一个算法在结构上是递归的:即算法一次或多次调用自身以解决紧密相关的若干子问题。这些算法典型地遵循分治法的思想:将原问题分解为几个规模较小但类似于原问题的子问题,递归的求解这些子问题,然后在合并这些子问题的解来建立原问题的解。分治法在每层递归上都有三个步骤:分解原来问题为若干子问题,然后,这些子问题是原问题的规模较小的实例。解决这些子问题,递归地求解各个子问题, 然而,若子问题规模足够小时,则直原创 2017-09-29 19:21:54 · 285 阅读 · 0 评论 -
堆排序
由于堆也被引申为Java中的垃圾收集存储机制,在本文中使用堆的定义仅为堆数据结构。完全二叉树的定义为:叶节点只能出现在最下层和次下层,并且最下面一层的结点都集中在该层最左边的若干位置的二叉树。堆是一个数组,也可以被看作一个近似的完全二叉树。对堆可以分为两类:大顶堆:每个结点的值都大于或等于其左右孩子的值小顶堆:每个结点的值都大于或等于其左右孩子的值 左边的即为大顶堆,右边的即为小顶堆,堆也可用作原创 2017-09-28 19:33:57 · 272 阅读 · 0 评论 -
希尔排序
希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。希尔排序是非稳定排序算法。同时也突破了之前内排序算法复杂度为O(n2)的限制。 希尔排序是基于插入排序的以下两点性质而提出改进方法的:插入排序在对几乎已经排好序的数据操作时,效率高,即可以达到线性排序的效率插入排序一般来说是低效的,因为插入排序每次只能将数据移动一位该方法的基本思想是:先将整个待排元素序列分割成若干个子序列(由原创 2017-09-28 17:12:30 · 236 阅读 · 0 评论 -
直接插入排序
直接插入排序的思想是:将一个记录插入到已排序好的有序表中,从而得到一个新,记录数增1的有序表。即:先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入并排序,直至整个序列有序为止。算法中引进的附加记录R[0]称监视哨或哨兵(Sentinel)。 哨兵有两个作用: ① 进人查找(插入位置)循环之前,它保存了R[i]的副本,使不致于因记录后移而丢失R[i]的内容; ② 它的主要原创 2017-09-28 15:55:56 · 290 阅读 · 0 评论 -
线性时间排序:计数排序、基数排序、桶排序
对于内排序算法,从最初的时间复杂度O(n*n)改进到O(nlogn)。常见的归并排序和堆排序达到了最坏情况的上界,快速排序在平均情况下达到上界。(时间复杂度为O(nlogn))。这些算法都有一个有趣的性质:在排序的最终结果中,各元素的次序依赖于它们之间的比较,因此这类算法被称为比较排序。对于排序算法我们可知,在最坏情况下,任何比较排序算法都需要做O(nlgn)次比较。在算法导论第八章中的证明中给出了转载 2017-10-01 22:00:22 · 1144 阅读 · 0 评论 -
C.Primer.Plus(第六版)第八章 编程练习
#include<iostream>#include<string>using namespace std;int pro_8_1_number=0;void show_str(const char* name,int i=0);struct CandyBar{ char* name; float weight; int calories;};struct s原创 2017-05-18 23:23:51 · 463 阅读 · 0 评论 -
C.Primer.Plus(第六版)第九章 编程练习
//9.1 //golf.h#ifndef __GOLF__H__#define __GOLF__H__const int Len = 40;struct golf{ char fullname[Len]; int handicap;};void setgolf(golf& g,const char* name,int hc);//return 1 if name is原创 2017-07-06 19:00:09 · 272 阅读 · 0 评论 -
常见的字符串复制函数
1.strcpy()函数 原型声明:char strcpy(char dest, const char *src);功能:把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间 说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。 返回指向dest的指针。 2.strcpy_s() _s函数是微软自己加的, 不是标准库, 最直观转载 2017-07-02 17:03:24 · 14441 阅读 · 0 评论 -
C/C++中交换两个整型数值的方法
实现交换两个整数的方式有很多,下面将简单介绍一些目前我学习到的方法,欢迎大家补充指正。//C语言中学到的最简单直接的方式void swap(int* a,int* b){ int temp = *a; *a = *b; *b = temp;}//由于C++中存在引用机制,可以直接修改传入参数的值void swap(int& a,int& b){ int te转载 2017-09-28 13:50:38 · 4272 阅读 · 0 评论 -
C.Primer.Plus(第六版)第17章 编程练习
//17_1//main.cpp#include <iostream>using namespace std;char temp;int count = 0;int main(){ cout<<"please enter some character:"; cin>>temp; while(temp != '$') { count++;原创 2017-09-06 15:36:33 · 626 阅读 · 0 评论 -
C.Primer.Plus(第六版)第16章 编程练习
C.Primer.Plus(第六版)第16章 编程练习原创 2017-08-11 14:36:16 · 457 阅读 · 0 评论 -
C.Primer.Plus(第六版)第15章 编程练习
//sales.h //15.4#ifndef SALES__H__#define SALES__H__#include #include class Sales{public: enum{MONTHS = 12}; class bad_index : public std::logic_error { private: int bi; public: ex原创 2017-07-31 14:43:42 · 710 阅读 · 0 评论 -
C.Primer.Plus(第六版)第14章 编程练习
//14_1#ifndef WINEC__H__#define WINEC__H__#include <iostream>#include <string>#include <valarray>#include <utility>class Wine{private: std::string name; std::pair<std::valarray<int>,std::原创 2017-07-26 09:04:09 · 712 阅读 · 0 评论 -
C.Primer.Plus(第六版)第13章 编程练习
//13.1//cd.h --- base class#ifndef CD__H__#define CD__H__class Cd{private: char performers[50];//演员 char label[20];//标签 int selections; double playtime;public: Cd(char* s1,cha原创 2017-07-20 21:06:05 · 430 阅读 · 0 评论 -
C.Primer.Plus(第六版)第12章 队列模拟
//queue.h#ifndef QUEUE__H__#define QUEUE__H__//This quene will contain Customer itemsclass Customer{private: long arrive;// arrival time for customer int processtime;//processing time for原创 2017-07-16 14:36:29 · 426 阅读 · 0 评论 -
C.Primer.Plus(第六版)第11章 编程练习
//11.1//vector.h -- Vector class with << mode state#ifndef VECTOR__H__#define VECTOR__H__#include <iostream>namespace VECTOR{ class Vector { public: enum Mode{RECT,POL};原创 2017-07-12 16:08:15 · 328 阅读 · 0 评论 -
C.Primer.Plus(第六版)第10章 编程练习
// 10.1// bank.h#ifndef BANK__H__#define BANK__H__class Bank{private: enum{SIZE = 20 }; char bank_name[SIZE]; char account[SIZE]; double deposit;public: Bank(); Bank(const原创 2017-07-10 08:53:11 · 413 阅读 · 0 评论 -
快速排序
快速排序的基本思想:通过一趟排序将待排记录分割为独立的两个部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分继续进行排序,以达到整个序列有序的目的。快速排序与归并排序一样,也使用了分治思想。 下面对一个典型的子数组A[p..r]进行快速排序的三步分治过程。分解:数组A[p..r]被划分为两个 (可能为空) 子数组A[p..q-1]和A[q+1..r],使得A[p..q-1]原创 2017-09-30 14:37:29 · 373 阅读 · 0 评论