Time of Update: 2017-01-18
一個整數自身加一可以這樣寫:a+=1;它等價於a=a+1;。但是在C語言中還有一種更簡單的寫法,就是a++;或者++a;。這種寫法叫做自加或自增;意思很明確,就是自身加一。相應的,也有a--和--a,叫做自減,表示自身減一。++和--分別稱為自增和自減運算子。自增和自減的樣本:#include <stdio.h>#include <stdlib.h>int main(){ int a = 10, b = 20; printf("a=%d, b=%d\n", a, b);
Time of Update: 2017-01-18
C語言也可以進行加減乘除運算,但是運算子號與數學中的略有不同,見下表。 加法 減法 乘法 除法 求餘數 數學 + - × ÷ 無 C語言 + - * / %
Time of Update: 2017-01-18
二叉樹的鏈式儲存實現二叉樹的基本操作:建立、遍曆、計算深度、結點數、葉子數等。輸入C,先序建立二叉樹,#表示空節點;輸入H:計算二叉樹的高度;輸入L:計算二叉樹的葉子個數;輸入N:計算二叉樹節點總個數;輸入1:先序遍曆二叉樹;輸入2:中序遍曆二叉樹;輸入3:後續遍曆二叉樹;輸入F:尋找值=x的節點的個數;輸入P:以縮格文本形式輸出所有節點。很簡單就不需要多解釋了,代碼貼上#include <stdio.h>#include <stdlib.h>#include
Time of Update: 2017-01-18
智能指標(auto_ptr) 這個名字聽起來很酷是不是?其實auto_ptr 只是C++標準庫提供的一個類模板,它與傳統的new/delete控制記憶體相比有一定優勢,但也有其局限。本文總結的8個問題足以涵蓋auto_ptr的大部分內容。auto_ptr是什嗎?auto_ptr
Time of Update: 2017-01-18
這裡駭客新聞嗎?作者用代碼更新了自己的簡曆,是不是很接地氣,特符合程式員的逼格。這是一份可讀可執行檔C語言源檔案,也是作者編碼風格的體現。C語言天才寫的一份簡曆#include <stdio.h>#include <time.h> typedef struct { union { char * company; char * school; char * project; }; union { char * location;
Time of Update: 2017-01-18
來自於C++程式設計的一個題目。實現一個集合類,要求實現以下4個操作。 1.向集合中添加元素,如果集合中已存在元素則不添加 2.從集合中移除元素,移除之前需要先判斷集合中元素是否存在 3.重載+運算子,用以實現集合的求並集運算 4.重載*運算子,用以實現集合的求交集運算 1.類的整體設計該問題需要類比實現集合類,我們可以使用數組來類比集合,於是使用int
Time of Update: 2017-01-18
1.實現代碼:#include #include #include #include #include #define BUFFSIZE 1024 * 1024 #define min(x, y) ((x) < (y) ? (x) : (y)) pthread_mutex_t lock = PTHREAD_MUTEX_INITIALIZER; struct cycle_buffer { unsigned char *buf; unsigned int size;
Time of Update: 2017-01-18
Inline function is like a macro definition. When it was be called in another function, the control right will not be changed to this function. The compiler will just replace the line of inline function with the actual content of the function. We use
Time of Update: 2017-01-18
箱排序的變種。為了區別於上述的箱排序,姑且稱它為桶排序(實際上箱排序和桶排序是同義字)。桶排序的思想是把[0,1)劃分為n個大小相同的子區間,每一子區間是一個桶。然後將n個記錄分配到各個桶中。因為關鍵字序列是均勻分布在[0,1)上的,所以一般不會有很多個記錄落入同一個桶中。由於同一桶中的記錄其關鍵字不盡相同,所以必須採用關鍵字比較的排序方法(通常用插入排序)對各個桶進行排序,然後依次將各非空桶中的記錄串連(收集)起來即可。注意:這種排序思想基於以下假設:假設輸入的n個關鍵字序列是隨機分布在區間[
Time of Update: 2017-01-18
問題1:#define到底存在程式的哪個區?自己寫了一個小程式驗證一下第一個問題。程式碼:<span style="font-size:18px;">#include <stdio.h>#include <STDLIB.H>#define kMAX 100typedef struct {int ID;char * name;}Student;void test(){return;}//常量區,靜態區,堆區,棧區,程式碼區const int a =
Time of Update: 2017-01-18
關於時間的類型:time_t long型,表示從1970年1月1日到現在經過的秒數。#include<time.h>struct tm { int tm_sec; /* 秒 – 取值區間為[0,59] */ int tm_min; /* 分 - 取值區間為[0,59] */ int tm_hour; /* 時 - 取值區間為[0,23] */ int tm_mday; /* 一個月中的日期 - 取值區間為[1,31] */
Time of Update: 2017-01-18
桶排序介紹桶排序(Bucket Sort)的原理很簡單,它是將數組分到有限數量的桶子裡。假設待排序的數組a中共有N個整數,並且已知數組a中資料的範圍[0,
Time of Update: 2017-01-18
桶排序(Bucket sort)或所謂的箱排序,是一個排序演算法,工作的原理是將數組分到有限數量的桶子裡。每個桶子再個別排序(有可能再使用別的排序演算法或是以遞迴方式繼續使用桶排序進行排序)。桶排序是鴿巢排序的一種歸納結果。當要被排序的數組內的數值是均勻分配的時候,桶排序使用線性時間(Θ(n))。但桶排序並不是比較排序,他不受到O(n log n)下限的影響。桶排序以下列程式進行:1.設定一個定量的數組當作空桶子。2.尋訪序列,並且把項目一個一個放到對應的桶子去。3.對每個不是空的桶子進行排序。
Time of Update: 2017-01-18
基本思想:將待排資料中的每組關鍵字依次進行桶分配。具體樣本:278、109、063、930、589、184、505、269、008、083我們將每個數值的個位,十位,百位分成三個關鍵字: 278 -> k1(個位)=8,k2(十位)=7,k3=(百位)=2。然後從最低位個位開始(從最次關鍵字開始),對所有資料的k1關鍵字進行桶分配(因為,每個數字都是 0-9的,因此桶大小為10),再依次輸出桶中的資料得到下面的序列。930、063、083、184、505、278、008、109、589、2
Time of Update: 2017-01-18
關於計數排序演算法當輸入的元素是 n 個 0 到 k 之間的整數時,它的已耗用時間是 Θ(n + k)。計數排序不是比較排序,排序的速度快於任何比較排序演算法。由於用來計數的數組C的長度取決於待排序數組中資料的範圍(等於待排序數組的最大值與最小值的差加上1),這使得計數排序對於資料範圍很大的數組,需要大量記憶體。計數排序是用來排序0到100之間的數位最好的演算法,但是它不適合按字母順序排序人名。但是,計數排序可以用在基數排序中的演算法來排序資料範圍很大的數組。演算法的步驟如下:
Time of Update: 2017-01-18
演算法思路理解我自己的理解哈,可能與網上說的有一些出入,大體都是同樣的原理無序數組有個要求,就是成員隸屬於固定(有限的)的區間,如範圍為[0-9](考試分數為1-100等)例如待排數字[6 2 4 1 5 9]準備10個空桶,最大數個空桶[6 2 4 1 5 9] 待排數組[0 0 0 0 0 0 0 0 0 0] 空桶[0 1 2 3 4 5 6 7 8 9] 桶編號(實際不存在)1,順序從待排數組中取出數字,首先6被取出,然後把6入6號桶,這個過程類似這樣:空桶[ 待排數組[ 0 ] ]
Time of Update: 2017-01-18
理解:桶排序是計數排序的變種,把計數排序中相鄰的m個"小桶"放到一個"大桶"中,在分完桶後,對每個桶進行排序(一般用快排),然後合并成最後的結果。基本思想:桶排序假設序列由一個隨機過程產生,該過程將元素均勻而獨立地分布在區間[0,1)上。我們把區間[0,1)劃分成n個相同大小的子區間,稱為桶。將n個記錄分布到各個桶中去。如果有多於一個記錄分到同一個桶中,需要進行桶內排序。最後依次把各個桶中的記錄列出來記得到有序序列。效率分析:桶排序的平均時間複雜度為線性O(N+C),其中C為桶內快排的時間複雜度
Time of Update: 2017-01-18
原理引入windows.h,首先是要獲得輸入的東西,然後通過判斷:1、方向鍵:執行上下左右的移動功能2 、斷行符號鍵:執行換行的功能。3、普通鍵:輸入功能。終點就是要擷取到螢幕上的座標,當按下了方向鍵以後,座標值+1,或者減一,從而實現了游標的自由移動。//C語言實現控制台中游標隨意移動#include <stdio.h>#include <windows.h>#include <conio.h> HANDLE hout;//獲得輸入char
Time of Update: 2017-01-18
建立一個對象數組,內放5個學生的(學號,成績),設立一個函數max,用指向對象的指標作函數參數,在max函數中找出5個學生的最高成績者,並輸出其學號。#include<iostream>using namespace std;class Student{public: Student(int=10,int=0); int number; int score; void display();};Student::Student(int num,int
Time of Update: 2017-01-18
1、尾碼名: C++/C程式的標頭檔以.h為尾碼,C程式的源檔案以.c為尾碼,C++程式的源檔案通常以.cpp為尾碼(有些書中介紹有一些系統以.cc或.cxx為尾碼的源檔案)。在Linux系統下的gcc,.C(部分),.cc或.cxx