上節內容主要針對迴圈結構進行了整理,第三彈中主要根據《演算法競賽入門經典第二版》第三章的內容進行小結,也算是乙個學習筆記吧~
1.演算法競賽中,陣列一般會宣告得稍大一些,且比較大的陣列應盡量宣告在main之外,否則程式可能無法執行。
如:int a[1000000] 位於主函式內程式會報錯。
解析:區域性變數儲存在棧中,由編譯器自動分配釋放,存放函式的參 數的值,區域性變數的值等。在windows下,棧是向低位址擴充套件的資料結構,是一塊連續的記憶體的區域。這句話的意思是棧頂的位址和棧的最大容量是系統預先規定好的,在windows下,棧的大小是2m(也有的是1m,總之是乙個編譯時就確定的常數),如果申請的空間超過棧的剩餘空間時,將提示overflow。因此,能從棧獲得的空間較小。因此,我們開乙個a[1000000],10000004>21024*1024,就會導致棧溢位;而全域性變數空間在win 32bit 下可以達到4gb,因此不會溢位。
關於對堆疊的講解 詳見大神總結——關於堆疊的講解
對於程式的輸出格式,一般要求輸出的行首行尾無空格,相鄰兩個資料用單個空格隔開。
常見的字串處理函式——常見字串處理函式總結——puts、memcpy、strlen、strcpy、strcat等
注意某些函式標頭檔案#include的引入。
用scanf("%s",s)讀入字串時,注意s不需要加&,它會讀入乙個不含空格、tab和回車符的字串,存入字元陣列s,也就是說讀入字串時遇到空白字元會停下來。如果是字串陣列char s[maxn][max1],可以用scanf("%s",s[i])讀取第i個字串。
c語言字串詳解(十分詳細)
printf輸出到螢幕,fprintf輸出到檔案,sprintf輸出到字串,同時應當保證寫入的字串有足夠的空間(>=字元個數+1)。如sprintf(buf,"%d",a)。
char strchr(const char s, int c)
功能: 查詢字串s中首次出現c字元的位置
說明: 返回首次出現c的位置的指標,返回的位址是被查詢的字串指標開始的第乙個與c相同字元的指標,若s中不存在c則返回null
返回值: 成功返回要查詢的字元第一次出現的位置,否則返回null
char strrchr(const char s, int c)
功能: 查詢乙個字元c在乙個字串s中最後一次出現的位置(也就是從s的右側開始查詢字元c首次出現的位置),並返回從字串中的字元c所在的位置開始直到字串s結束的所有字元。 若沒有找到字元c,則返回null。
c語言並不禁止程式讀寫「非法記憶體」。例如,宣告的是char a[100],完全可以賦值a[100000]=『a』,但後果自負。
相對於 gets 函式,fgets 函式最大的改進就是能夠讀取指定大小的資料,從而避免 gets 函式從 stdin 接收字串而不檢查它所複製的緩衝區空間大小導致的快取溢位問題。故不推薦使用gets。
具體詳解請看—— c語言gets和fgets函式詳解
字串常量與字串變數
#include
#include
using
namespace std;
intmain()
c標準庫——
int isalpha ( int c ):判斷乙個字元是否是字母,用來檢測乙個字元是否是字母,返回值為非零(真)表示c是字母,返回值為零(假)表示c不是字母。
int isdigit(int c):檢查所傳的字元是否是十進位制數字字元,如果 c 是乙個數字,則該函式返回非零值,否則返回 0。
int isprint(int c):檢查所傳的字元是否是可列印的。可列印字元是非控制字元的字元。如果 c 是乙個可列印的字元,則該函式返回非零值(true),否則返回 0(false)。
ch為數字時,ch-『0』就是這個數字的數值本身(例如『5』-『0』=5)。
在多數計算機內部,整數採用的是補碼表示法,運算更方便。如-n的內部表示是232-n(二進位制中,正數的補碼等於其本身,負數的補碼等於絕對值取反後加1)補碼-1+原碼=232-1,所以-n的內部表示是232-n。
字元還可以直接用ascii碼表示。如果用八進位制,應該寫成「\o」,"\oo"或"\ooo"(o為乙個八進位制數字);如果用十六進製制,應該寫成「\xh」(h為十六進製制數字串)。
c/c++ %s %d %u 基本概念與用法
待發布
藍橋杯備賽第三週
按我自己的理解遞迴就是同乙個函式的迴圈執行。1 找重複 找到一種劃分方法 找到遞推公式或者等價轉接都是父問題轉化為求解子問題 2 找變化的量 變化的量通常要作為引數 3 找出出口 找到邊界值 斐波那契數列 static int fib int n insertsort arr,k k 1 int x...
藍橋杯入門訓練 藍橋杯備賽
begin 1 a b問題str1 input str2 str1.split s int str2 0 int str2 1 print s begin 2 序列求和s int input 用公式計算而不用迴圈,避免超時 n s s 1 2print int n begin 3 圓的面積impor...
藍橋杯備賽筆記 規律題
今年大三,開始準備藍橋杯大賽,在做了第七屆以及第六屆的題以後,對於藍橋杯的考點以及考查方式有了一定的了解,這裡做乙個小結。藍橋杯的考察點每年都會考三類題型,第一種是規律題,典型特徵是給出乙個變化情況,讓你來找出其中的規律,並且根據這個規律開回答它的問題。第二種是考察對於暴力求解的方法的理解與使用情況...