Time of Update: 2018-12-03
這個貌似是清華大學考研複試題,起初的想法是迴圈除以2,然後逆序輸出,程式也較易實現,不過是否有一種更為便捷的方法呢?有!包含在<stdlib.h>庫裡的itoa函數已實現此類功能。源碼如下:#include <iostream>#include <stdlib.h>using namespace std;int main(){ int nValue=0; char buf[100]={0}; int n=-1; int count=0;
Time of Update: 2018-12-03
題目:輸入一個整形數組,數組中連續的一個或多個整數組成一個子數組,每個子數組都有一個和。求所有子數組的和的最大值並輸出該子數群組成員。要求時間複雜度為O(n)。#include <iostream>using namespace std;int Sum(int *a,int size,int *&result,int &count);int main(){ const int N=8; int a[]={1,-2,3,10,-4,7,2,-5};
Time of Update: 2018-12-03
//程式入口intAPIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){ MSG msg; //訊息結構體 //向系統註冊視窗類別別,輸入的參數“hInstance”是目前程式運個體的對象代碼 MyRegisterClass(
Time of Update: 2018-12-03
分析:由於長度未知,常規的遍曆輸出方法是很難實現的,遞迴是個不錯的選擇。 實現:首先完成序列的任意排列輸出: #include <iostream>#include <string>using namespace std;int g_nCount=0;string strBuf="";void OutPut(string,int);int _tmain(int argc, _TCHAR* argv[]){ string str=""; cout<<
Time of Update: 2018-12-03
有人從一手紙牌中選定一張牌,他把這張牌的點數告訴A,而把花色告訴了B。兩位先生都知道這手紙牌是:黑桃:J、8、4、2;梅花:K、Q、5、4;紅心:A、Q、4;方塊:A、5;A和B對話如下:A:我不知道這張牌。B:我知道你不知道。A:現在我知道了。B:現在我也知道了。根據以上對話,你能推測出這是下面哪一張牌?( ) A.方塊A B.紅心Q C.黑桃4 D.方塊5數字推理:16 23 28 38 49 __A 59 B 60 C 62 D
Time of Update: 2018-12-03
在學習C語言檔案操作後,我們都會知道開啟檔案的函數是fopen,也知道它的第二個參數是 標誌字串。其中,如果字串中出現'b',則表明是以開啟二進位(binary)檔案,否則是開啟文字檔。 那麼什麼是文字檔,什麼是二進位檔案呢? 可能大多數人都沒有仔細考慮過。 在Windows和DOS系統中,狹義的文字檔是指副檔名為txt的檔案。實際上,那些沒有規定格式的,由可理解的的ASCII以及其他編碼文字組成
Time of Update: 2018-12-03
//{2,1,2,3,5}不重複的元素個數是3 #include <iostream>#define N 15using namespace std;void Sort(int *,int size);int main(){ bool flag=false;//以防出現連續重複的數值 int k[N] = {1,17,1,3,3,5,7,9,11,13,15,17,3,5,9}; int count=1; int subCou=0; Sort(k,N);
Time of Update: 2018-12-03
繪製橢圓函數BOOL Ellipse( HDC hdc, int x1, //橢圓外接矩形左上點x座標 int y1, //橢圓外接矩形左上點y座標 int x2, //橢圓外接矩形右下點x座標 int y2 ); //橢圓外節矩形右下點y座標繪製圓角矩形BOOL
Time of Update: 2018-12-03
轉點資料,用於備忘 @_@Stack unwinding (C++ only)When an exception is thrown and control passes from a try block to a handler, the C++ run time calls destructors for all automatic objects constructed since the beginning of the try block. This process is
Time of Update: 2018-12-03
C++中的inline是個容易被誤解的關鍵字,即使是專家也常會犯錯。不信?請開啟《Thinking in C++ 2rd Edition Volumn 1》,找到Chapter 9 "Inline Function"的Exercise 6:“Prove that inline functions default to internal linkage."為什麼我說這裡作者犯錯了呢?因為C++ 03標準中角標79處明確寫到:“ The inline keyword has no
Time of Update: 2018-12-03
程式沒有實現與使用者的輸入互動:#include <iostream>using namespace std;void Sort(double [][2],int size);int main(){const int N=6;double max=0;double x1,y1,x2,y2;double pt[N][2]={{1.2,1.8},{2.1,8.7},{0.31,3.1},{1.4,4.9},{12.5,5.2},{6.8,6.1}};Sort(pt,6);for(int
Time of Update: 2018-12-03
#!/bin/bash############################################################################## AutoMountISO:自動掛載/卸載ISO鏡像# Author:whodare#hotmail.com# ## 功能 1.對於.ISO檔案自動掛載,並自動開啟檔案瀏覽器瀏覽其內容# 2.對於掛載點,自動完成卸載,並在必要時自動刪除掛載點# # 整個指令碼所完成的功能不需要使
Time of Update: 2018-12-03
今天看《Effective C++ 3rd》中的第27款時看到的: "關於強制轉型的一件有趣的事,是很容易寫出看起來似是而非(在其它語言中也許是對的)的代碼。例如,許多應用程式架構要求 derived classes中的virtual member function要首先調用 base class(的對應函數。假設我們有一個 Window base class(基類)和一個 SpecialWindow derived class(衍生類別),它們都定義了
Time of Update: 2018-12-03
第一種:Header: <fstream>Namespace: std成員函數open(),用來開啟檔案.原型:void open(const char* filename,int mode,int access); 其中: filename: 要開啟的檔案名稱 mode: 要開啟檔案的方式 access: 開啟檔案的屬性 預設情況為opening protection 開啟檔案的方式: ios::app: 以追加的方式開啟檔案
Time of Update: 2018-12-03
近日受老闆之命,不得不在一台廢棄的伺服器上裝個Solaris 10 。出於對Linux的喜愛,我對這個目前最正宗的UNIX作業系統之一很自然的帶有好感,最初也想趁這個機會接觸下傳說中的UNIX 。 然而安裝後確實大失所望:略顯不友好的安裝流程,安裝完畢後醜陋的案頭環境,以及連命令補全功能都不具備的shell,天啊,這就是最純粹的UNIX之一?我不由的懷念起Linux,就如剛接觸Linux時懷念Windows一般。
Time of Update: 2018-12-03
感謝XX公司的筆試啊,讓我總算下定決心徹底把這個似乎很簡單的問題想一想了,發覺之前自己的理解真是差強人意! 下面的鏈表翻轉是通過重新建立一個新鏈表來實現的,空間複雜度過於不理想...#include <iostream>using namespace std;struct Node{int data;Node *next;}*head;void AddNode(int value);void Swap(Node *&head);int
Time of Update: 2018-12-03
1 名稱覆蓋 子類若定義了與基類成員名稱相同的成員,則基類成員在子類中會被覆蓋。這裡要理解的是C++的名稱掩蓋規則(name-hiding rules)是很簡單的:只看名稱,不區別類型。 此外,如果基類中存在某個成員函數的若干個重載版本,而子類也定義了同名函數(參數類型與傳回值是否一致都不重要),則基類所有版本的重載函數都會被覆蓋。 例如,下面例子中基類的成員x和 foo()都會被子類中的對應成員所覆蓋,儘管它們的類型並不相同 class Base{public:
Time of Update: 2018-12-03
#include <iostream>#include <deque>using namespace std;struct BTree{BTree* pLeft;BTree* pRight;int value;};void AddNode(BTree* &pCurrent,int values);void PreOrderTraversal(BTree* root);void InOrderTraversal(BTree* root);void
Time of Update: 2018-12-03
記不請是那個大哥的blog了,名字好像叫做“用了10年,才知道C++才懂了一點“。俺覺得這話說的太實在了,正如TAOUP中4.2節所言:”C++ is anti-compact—the language's designer has admitted that he doesn't expect any one programmer to ever understand it all.“
Time of Update: 2018-12-03
今天突然腦子裡面幾處知識點大串聯,貌似是迸發出了些許思維的火花,以前一直感覺模模糊糊的有關使用者棧的大小限制、棧是怎麼自動擴充等問題,通過對照以前看過的核心代碼的一些關鍵片段,似乎清晰了起來。機不可失,趁還沒迷糊之前拿筆記下來。問題1 Linux下使用者程式的預設棧大小是多少?如何查看,又如何更改預設值(上層指令和底層實現)? 在bash中輸入“ulimit -s