Time of Update: 2017-02-27
VC++2008 調試通過// codetest.cpp : Defines the entry point for the console application.//#include "stdafx.h"#includeusing namespace std;class Observer;class Subject{public:virtual void Attach(Observer *o)=0;virtual void Change()=0;virtual char
Time of Update: 2017-02-27
堆排序包含兩個步驟:第一步: 是建立大頂堆(從大到小排序)或小頂堆(從小到大排序), 從下往上建立; 如建堆時, s是從大到小;第二步: 是依次交換堆頂和堆底, 並把交換後的堆底輸出, 只排列剩餘的堆, 從上往下建立; 如構造時, s始終是1;堆排序(Heap Sort)的時間複雜度是O(nlogn), 最壞情況下也是如此.而快速排序(Quick Sort), 若初始記錄序列有序, 快速排序將退化為起泡排序(Bubble Sort),
Time of Update: 2017-02-27
鄰接表有向圖的介紹鄰接表有向圖是指通過鄰接表表示的有向圖。上面的圖G2包含了"A,B,C,D,E,F,G"共7個頂點,而且包含了"<A,B>,<B,C>,<B,E>,<B,F>,<C,E>,<D,C>,<E,B>,<E,D>,<F,G>"共9條邊。上圖右邊的矩陣是G2在記憶體中的鄰接表示意圖。每一個頂點都包含一條鏈表,該鏈表記錄了"該頂點所
Time of Update: 2017-02-27
函數名: gcvt功能: 把浮點數轉換成字串用法: char *gcvt(double value, int ndigit, char *buf);程式例:#include#includeint main(void){char str[25];double num;int sig = 5; /* significant digits *//* a regular number */num = 9.876;gcvt(num, sig, str);printf("string =
Time of Update: 2017-02-27
函數名: sbrk功能: 改變資料區段空間位置用法: char *sbrk(int incr);程式例:#include#includeint main(void){printf("Changing allocation with sbrk()\n");printf("Before sbrk() call: %lu bytes free\n",(unsigned long) coreleft());sbrk(1000);printf("
Time of Update: 2017-02-27
什麼是結構體?簡單的來說,結構體就是一個可以包含不同資料類型的一個結構,它是一種可以自己定義的資料類型,它的特點和數組主要有兩點不同,首先結構體可以在一個結構中聲明不同的資料類型,第二相同結構的結構體變數是可以相互賦值的,而數組是做不到的,因為數組是單一資料類型的資料集合,它本身不是資料類型(而結構體是),數組名稱是常量指標,所以不可以做為左值進行運算,所以數組之間就不能通過數組名稱相互複製了,即使資料類型和數組大小完全相同。定義結構體使用struct修飾符,例如:struct
Time of Update: 2017-02-27
函數名: wherex功能: 返回視窗內水平游標位置用法: int wherex(void);程式例:#includeint main(void){clrscr();gotoxy(10,10);cprintf("Current location is X: %d Y: %d\r\n", wherex(), wherey());getch();return 0;}函數名: wherey功能: 返回視窗內垂直游標位置用法: int
Time of Update: 2017-02-27
學習C語言不是一朝一夕的事情,但也不需要花費十年時間才能精通。如何以最小的代價學習並精通C語言是本文的主題。請注意,即使是“最小的代價”,也絕不是什麼捷徑,而是以最短的時間取得最多的收穫,同時也意味著你需要經曆艱苦的過程。一、要讀就讀好書,否則不如不讀所有初學者面臨的第一個問題便是:如何選擇教材。好的開始是成功的一半,選擇一本優秀的教材是事半功倍的關鍵因素。不幸的是,學校通常會幫你指定一本很差勁的C語言課本;而幸運的是,你還可以再次選擇。大名鼎鼎的譚浩強教授出了一本《C語
Time of Update: 2017-02-27
常見的中文內碼一般有GB2312(簡體中文),GBK和台灣那邊用的BIG5(繁體中文),有時候看一些台灣編程論壇裡的資料,都是亂碼,如果在IE中瀏覽,則要求安裝繁體字型檔的支援。網上也有很多中文內碼的轉換工具,什麼專家,大師,巨匠之類所有光輝燦爛的名字都被使用了,但是在自己的程式中整合這些功能豈不是更好。以前曾廣泛流傳過使用碼錶來轉換中文內碼的Code,但畢竟不完美,而且還要攜帶或內建一個巨大的表,浪費資源。Windows中提供了MultiByteToWideChar和WideCharToMul
Time of Update: 2017-02-27
1 基本解釋extern可以置於變數或者函數前,以標示變數或者函數的定義在別的檔案中,提示編譯器遇到此變數和函數時在其他模組中尋找其定義。另外,extern也可用來進行連結指定。2 問題:extern 變數在一個源檔案裡定義了一個數組:char a[6];在另外一個檔案裡用下列語句進行了聲明:extern char *a;請問,這樣可以嗎?答案與分析:1)、不可以,程式運行時會告訴你非法訪問。原因在於,指向類型T的指標並不等價於類型T的數組。extern char
Time of Update: 2017-02-27
一般的盜密碼的軟體的軟體都是通過監視鍵盤來獲得密碼,這樣操作比較方便,但是這樣也存在一定問題,密碼有的時候不是很準確,因為有的人輸入密碼並不是從前到後輸入,當然這樣的人也是少數,盜密碼嘛,當然去得到那些比較粗心的人的密碼! 通過安裝鉤子來監視QQ登陸介面就是獲得密碼的方法,在安裝前得先找到登陸視窗的控制代碼,當鉤子安裝後,記錄鍵盤,當使用者“斷行符號”或是點了“登陸”就可以開始處理密碼了!
Time of Update: 2017-02-27
二、串連時的常見錯誤1.將Turbo C庫函數名寫錯。這種情況下在串連時將會認為此函數是使用者自訂函數。此時螢幕顯示:Undefined symbol '<函數名>' in <程式名> 2.多個檔案串連時,沒有在"Project/Project name中指定專案檔(.PRJ檔案),此時出現找不到函數的錯誤。 3.子函數在說明和定義時類型不一致。4.程式調用的子函數沒有定義。
Time of Update: 2017-02-27
二分圖是一個無向圖,它的n個頂點可二分為集合A和集合B,且同一集合中的任意兩個頂點在圖中無邊相連(即任何一條邊都是一個頂點在集合A中,另一個在集合B中)。若且唯若B中的每個頂點至少與A中一個頂點相連時,A的一個子集A' 覆蓋集合B(或簡單地說,A' 是一個覆蓋)。覆蓋A' 的大小即為A' 中的頂點數目。若且唯若A' 是覆蓋B的子集中最小的時,A' 為最小覆蓋。例1-10 考察如圖1 - 6所示的具有1 7個頂點的二分圖,A={1, 2, 3, 16, 17}和B={4, 5, 6, 7, 8,
Time of Update: 2017-02-27
Turbo C程式的調試一個程式設計好了以後,通常會有一些錯誤,尋找和修改程式中的錯誤是令人頭痛的事。Turbo C整合式開發環境提供了一調試裝置,使得這一個工作容易了許多,程式調試達到了編譯和運行級。一、TC訊息視窗使用TC最好的理由之一是它允許使用者修改語法錯誤(編譯時間)和評估編譯器給出的警告。TC將編譯器和連接器發出的訊息收集到一緩衝區中,然後在訊息視窗中顯示,這樣在訪問原始碼的同時,還能一下看到這些訊息。
Time of Update: 2017-02-27
對於給定的n個元素的數組a[0 : n - 1],要求從中找出第k小的元素。當a[0 : n - 1]被排序時,該元素就是a[k - 1]。假設n=8,每個元素有兩個域k e y和I D,其中k e y是一個整數,I D是一個字元。假設這8個元素為[( 1 2 ,a),( 4 ,b),( 5 ,c),( 4 ,d),( 5 ,e),( 1 0 ,f),( 2 ,g),( 2 0 ,h)], 排序後得到數組[( 2 ,g),( 4 ,d),( 4 ,b),( 5 ,c),( 5 ,e),( 1 0
Time of Update: 2017-02-27
小結1.從程式執行的流程來看, 程式可分為三種最基本的結構: 順序結構,分支結構以及迴圈結構 2.程式中執行部分最基本的單位是語句。C語言的語句可分為五類:(1)運算式語句 任何錶達式末尾加上分號即可構成運算式語句, 常用的運算式語句為指派陳述式。(2)函數調用語句 由函數調用加上分號即組成函數調用語句。(3)控制語句 用於控製程序流程,由專門的語句定義符及所需的運算式組成。主要有條件判斷執行語句,迴圈執行語句,轉向語句等。(4)複合陳述式 由{}把多個語句括起來組成一個語句。
Time of Update: 2017-02-27
一、位域有些資訊在儲存時,並不需要佔用一個完整的位元組, 而只需占幾個或一個二進位位。例如在存放一個開關量時,只有0和1 兩種狀態, 用一位二進位即可。為了節省儲存空間,並使處理簡便,C語言又提供了一種資料結構,稱為“位域”或“位段”。所謂“位域”是把一個位元組中的二進位劃分為幾個不同的地區, 並說明每個地區的位元。每個域有一個網域名稱,允許在程式中按網域名稱進行操作。
Time of Update: 2017-02-27
本文詳細介紹C語言中trim的實現描述自己用ATL寫了個COM,不支援MFC,所以無法用CString,但支援C編碼,遇到字串(字元數組),想去掉字串中的空格,C下沒有TRIM函數,找又沒找到,幾行代碼自己寫吧。往後大家萬一遇到用著也方便。說明1.seps是需要去除的字元數組,可以有幾個字元,也可以一個。這裡是空格,最常用的。2.參數也很簡單,第一個是結果數組指標,第二個是原字元數組指標,第三個是需要去掉的字元數組指標。返回的是結果數組指標。#include
Time of Update: 2017-02-27
可能大家都知道C語言中的隨機函數random,可是random函數並不是ANSI C標準,所以說,random函數不能在gcc,vc等編譯器下編譯通過。那麼怎麼實現C語言中的隨機函數呢?除了random函數,還有一個rand函數,也是一個隨機函數,可以產生從0到rand_max的隨機數。#include <stdio.h>#include <stdlib.h>int main(){int k;k=rand();printf("%d\n",
Time of Update: 2017-02-27
現在,有很多C/C++程式員總是自命不凡,看不起其他開發人員。其實,或許別人更看不起他呢!學生時代,我也曾醉心於C/C++,但時至今日,始終無法寫出無懈可擊的C++代碼,所以我始終認為我不會C/C++。這些年,我一直在尋找編寫C++代碼的最佳模式。但是,老實說,我還沒有見到過哪個稱得上高手的C++程式員,也沒有見到過寫得Very