這條語句可以把輸出緩衝區裏的內容立刻顯示在屏幕上;
2. return; 結束當前函數
exit(); 結束整個程序,需要在程序開頭處加入 #include <stdlib.h>
4. 使用數組作形參和實參是同一個數組,函數中修改了數組的內容,調用函數可以看到數組的變化。
若不用數組形參,而使用其他形參,很可能無法計算,因爲函數結束,形參也就消失了。
5. 數組形參無法用 sizeof 計算出數組行參大小;
只有在主函數裏面算出數組大小,然後傳給形參數組:
void xingcan(int value[], int num){}
6. 輸入一個整數,如果不是,提示重新輸入:(scanf類型不匹配,返回 0)
while(!(scanf("%d", &data)))
{
scanf("%*[^\n]"); // * 忽略讀到的內容,[^\n]任何非\n的字符,將\n之前所有字符讀走
scanf("%*c"); // 從緩衝區讀取一個字符,忽略掉。
printf("請重新輸入整數:");
}
上面兩條語句起到清空緩衝區的作用。
7. 遞推思路:用循環解決問題;
遞歸思路:用遞歸函數解決問題;
8. 漢諾塔:(han.c)
han(int num, char left, char mid, char right) // num盤子數目,left,mid,right爲三個柱子,且盤子剛開始在left柱子上
{
if(1 == num) // 遞歸一定要有分支
printf("把第%d個盤子從%c移動到%c\n", num, left, right);
else
{
han(num - 1, left/*確定*/, right/*添加*/, mid/*確定*/);
// 先確定此處 left 和 mid 位置,先由 left->mid,最後添加 right
printf("把第%d個盤子從%c移動到%c\n", num, left, right);
han(num - 1, mid/*確定*/, left/*添加*/, right/*確定*/);
// 再把中間的移到最右邊
}
}
int main()
{
han(3, 'A', 'B', 'C');
}
9. 生成隨機數代碼如下:
#include <stdlib.h>
#include <time.h>
int data = time(0);
srand(data);
int result = rand();
rand(); 生成隨機數,(僞隨機數)如:int data = rand();
srand 設置隨機種子,生成隨機數,通過rand()返回;如:srand(data); int result = rand();
time 用來獲取1970年零點到現在的秒數;當參數爲 0 時,獲取到的秒數通過返回值來返回:如:int data = time(0);
10. 重複數字個數:(chongfu.c)
int arr[10] = {0};
do {
arr[data % 10]++; // 計算出重複數字個數
data /= 10;
} while (data != 0);
11. 輸出內容能夠到達屏幕的條件有下面四點:
\n
程序結束
輸出緩衝區滿(4kb)
人工刷新 fflush