演算法從零開始 c c 基礎 查漏補缺

2021-08-21 10:31:05 字數 2877 閱讀 5692

算法學的零零散散,藍橋勉強拿個國三,acm慘敗,稱著假期,好好從頭開始,也是學長建議,刷演算法筆記

前面是基礎、瀏覽一遍,查漏補缺即可:

1.絕對值在10^9範圍以內的整數都可以定義成int型

2.題目要求超過2147483647,如10^10或者10^18次方,就得用long long來儲存

3.雙精度double,8b,64位,有效精度15~16位

4.0~9的ascii:48~57        a~z的ascii:65~90        a~z的ascii:97~122

5.cin、cout輸出所耗費的時間遠遠多於scanf和printf

6.%md m位右對齊輸出,高位補空格

7.%0md  m位右對齊輸出,高位補0

8.floor(double x):向下取整  ceil(double x) :向上取整

9.power(double r,double p) :r^p         pow(double x,int n):x,n

10.log(double x)   lnx  x以自然對數為底的對數、c語言中沒有對任意底數求對數的函式,必須用換底公式來求 eg:logab=logeb/logea

11.round(double x) 對x四捨五入

12.memset函式 memset(陣列名,值,sizeof(陣列名)) (需要#include)  memset按位元組賦值,每個位元組賦一樣的值,由於0的二進位制補碼全為0,-1的二進位制補碼全為1,初學賦值0,-1不易弄錯,賦其他值要用fill函式

eg:memset(a,0,sizeof(a))全部賦值0

memset(a,-1,sizeof(a))全部賦值-1

13.fill函式   fill(a,a+5,233)陣列a[0]~a[4]均賦值為233  比memset好用,不過效率低一些,且包含在algorithm裡

14.sscanf與sprinf   (stdio.h下)

1.sscanf理解為:string+scanf 從string裡面讀

char str[100];

sscanf(str,"%d",&n); 從左到右將str中的內容以"%d"形式傳到n裡     string->int     

string可以非法,遇到非法字元自動停止       eg: sscanf("2.2a2","%lf",&doubl);  doubl被賦值 2.2

2.sprintf理解為:string+printf   輸出到string裡

char str[100];

sprintf(str,"%d",n);   從右到左將n以"%d"的格式寫到str字元陣列裡  int->string

3. string轉int還可以用   int atoi(char*);   eg:int n=atoi("12345")+1;    int n=atoi(str.c_str());

15.一般的oj系統,一秒能承受的運算次數大概是10^7~10^8

16. 檔案結束符結束

while(scanf("%d",&a)!=eof){}

while(scanf("%d",&a)!=-1){}

while(cin>>a){}

while(scanf("%s",str)!=eof){}

while(gets(str)!=null){}

17 自定義資料型別 typedef long long ll;

18%lld輸出long long

19 c++switch後的case寫「str"再用switch(string)無法匹配所以switch後面的常量表示式並不是可以支援任意型別,char 和 int 用switch 比較合適,其他型別不建議使用switch

20.freopen("input.txt","r",stdin);//從檔案input中讀資料 不用自己乙個乙個輸入   檔案可以寫絕對路徑,相對路徑預設根目錄是.exe目錄

freopen("out.txt","w",stdout);//輸出到檔案out.txt內 不輸出到控制台

21. int_max int最大值                                     int_min int最小值

1、memset()函式只能初始化0和-1

2、string轉int還可以用   int atoi(char*);   eg:int n=atoi("12345")+1;    int n=atoi(str.c_str());

#includeusing namespace std;

int main(){

int n;

string str;

//atoi() char*轉int

3、sscanf 和atoi一樣 遇到非法字元會自動停止 開始就非法 則相當於沒賦值

CC 查漏補缺

培養個人才能,無可替代,確定個人職業目標,專業技術性人才,自主學速度習,提公升專業能力,打字速度是基本功,多加練習,實現盲打,提高準確度,速度,練習時間,3個月,每天1小時,專業書籍閱讀,不要期待別人一句句教你都很忙,沒時間搭理你。解決年齡焦慮,最好的辦法是行動,明確目標,腳踏實地。完善個人知識體系...

c c 面試總結 查漏補缺(二)

答 c和c 中struct的主要區別是c中的struct不可以含有成員函式,而c 中的struct可以。c 中struct和class的主要區別在於預設的訪問許可權不同,struct預設為public,而class預設為private 其次,c 中的類具有成員保護功能,並且具有繼承,多型這類oo特點...

c語言基礎查漏補缺

該部分只是用來記錄c語言模糊的知識點 以下寫法錯誤 char c 123 char c1 哦 1.作用 用來計算乙個變數或者乙個常量 一種資料型別所佔的記憶體位元組數。2.基本形式 sizeof 變數 常量 int size sizeof a sizeof 變數 常量 int size sizeof...