算法竞赛入门经典——1
想著要學算法已經很長時間了,但一直都是有問題自己想,很少受“正規軍”編排,網上關于算法的書倒是不少,其一必推《算法導論》,還有一本《算法競賽入門經典》,作者劉汝佳,好了,步入正題,兩天時間從第一章到第三章結尾,算是對C又進行了一遍復習,說一下新得
?
%3d %-3d %03d
知道它們的區別嗎,在調用printf時候,第一個表示輸出格式三位,不足三位左補空格,當然如果超過三位則正常輸出應該的位數,第二個和第一個區別則是右補,其他都一樣,第三個和第一個也一樣只是這一次補的是代替空格補0了
?
printf需要輸出特殊字符\n,%d怎么辦,看下面
printf("\\n"); printf("%%d");下面介紹一些函數
計算程序運行時間的
clock()/CLOCKS_PER_SEC這個在time.h 里面,其中CLOCKS_PER_SEC與機器有關,必須要除,不然得到的值沒有實際意義
輸入輸出重定向
在使用時候,txt文件和C文件放在一起
?
freopen("1.txt","r",stdin); freopen("1.txt","w",stdout);?
這兩個主要是輸入輸出大量數據,鍵入不方便時候使用在stdio.h里面
兩個數組之間是不能直接賦值,有函數memcpy();memset();用法如下:
char a[4]={0,1,2,3},b[4]={4,5,6,7}; memset(a,19,2); printf("%d %d %d %d\n",a[0],a[1],a[2],a[3]);這樣輸出數組a的值為19,19,2,3;看出來了吧,memset是給數組重新賦值的,三個參數分別是對象,數值,個數和memset類似,memcpy則是復制一個數組里面k個元素給另一個,看下面的例子
char a[4]={0,1,2,3},b[4]={4,5,6,7}; memcpy(a,b,2); printf("%d %d %d %d\n",a[0],a[1],a[2],a[3]);這樣數組a值為4,5,2,3:當然要是數組很大又想全部賦值就直接傳入第三個參數sizeof(b)就OK了,還有一個適應于字符串賦值的函數strcpy(a,b),意思將b中字符串給a,這三個在string.h里面
最后提一下C中“”和‘’的區別,簡單來說大小,“”用在字符串,‘’用在字符.比如下面這一段
if(c=='A'){printf("%c",'H'); if(c=='A'){printf("%s","H");以上是我覺得新人可能會需要的,其實算法就是解決問題的辦法,更關鍵的是能夠熟練掌握C,自然可以得心應手處理復雜問題
?
?
?
?
總結
以上是生活随笔為你收集整理的算法竞赛入门经典——1的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SPI 协议学习
- 下一篇: Pycharm常用高效技巧总结