學習總結--《演算法筆記》(c語言版)
阿新 • • 發佈:2019-01-09
快速入門
摘自《演算法筆記》,胡凡主編
1.%md,可以使不足m位的int形變數以m位進行右對齊輸出,其中高位用空格補齊;如果變數本身超過m位,則保持原樣。
#include<stdio.h>
int main(){
int a = 123, b = 3456789;
printf("%5d\n", a);
printf("%5d\n", b);
return 0;
}
輸出結果:
123
3456789
2.%0md,與上述不同的是不足m位時,用0補全,而非空格。
3.%.mf,讓浮點數保留m位小數輸出,採用“四舍六如五成雙”規則。
4.輸入、輸出
getchar和putchar,在某些scanf函式使用不便的情況下使用,輸入或輸出單個字元。
#include<stdio.h>
int main(){
char c1,c2,c3;
c1 = getchar();
getchar();
c2 = getchar();
c3 = getchar();
putchar(c1);
putchar(c2);
putchar(c3);
return 0;
}
若輸入為:
abcd
則輸出為
acd
當然也可以使用gets和puts進行輸入輸出整個字串,gets識別"\n"作為一行字串的結束。
5.break和continue語句
區分:break跳出整個迴圈體;而continue只是跳出改迴圈體的本次輪迴,進入下一次輪迴;
#include<stdio.h>
int main(){
int sum1 = 0, sum2 = 0;
for(int i = 1; i <= 5; i++){
if(i % 2 == 1) break; //因為第一個數為1,直接跳出整個for迴圈,因此sum1結果為0
sum1 += i;
}
for( i = 1; i <= 5; i++){
if(i % 2 == 1) continue;
sum2 += i;
}
printf("%d\n%d\n",sum1, sum2);
return 0;
}
輸出結果
0
6
6.指標變數中*表示取出地址中存放的數,&表示取該變數地址。
7.string.h
strlen(字元陣列) //得到陣列中第一個\0前的字元的個數
strcmp(字元陣列1,字元陣列2) //按字典序排序
strcpy(字元陣列1,字元陣列2) //把字元陣列2賦值給字元陣列1
strcat(字元陣列1,字元陣列2) //把字元陣列2接到字元陣列1後面
8.sscanf(str, "%d", &n) //把字元陣列str的內容以"%d"的形式寫到n中
sprintf(str, "%d", n) //把n以"%d"的格式寫到str字元陣列str中
9.二位陣列作為形參時,第二個方括號裡面必須為一確定整數。
10.函式遞迴
#include<stdio.h>
int F(int n){
if(n == 0) return 1;
else return F(n - 1) * n;
}
int main(){
int n ;
scanf("%d", &n);
printf("%d",F(n));
return 0;
}