1. 程式人生 > >學習總結--《演算法筆記》(c語言版)

學習總結--《演算法筆記》(c語言版)

快速入門

摘自《演算法筆記》,胡凡主編
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

當然也可以使用getsputs進行輸入輸出整個字串,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;
}