標準C語言day04

2021-10-08 01:55:00 字數 2370 閱讀 2832

陣列:

什麼是陣列:變數的組合,是一種批量定義變數的方式。

定義:型別 陣列名[數量];

int arr[5];

使用:陣列名[下標];

下標:從零開始,範圍:0~數量-1。

遍歷:與for迴圈配合,使用迴圈變數i當作陣列的下標。

初始化:型別 陣列名[數量] = ;

1、陣列與普通變數一樣預設值是隨機的,為了安全要對進行初始化。

2、這種初始化語法只能在定義陣列時使用,而且必須使用常量初始化。

3、初始化資料過多,編譯器會丟棄並產生警告。

4、初始化資料不夠,編譯器則會補0。

5、初始化陣列時長度可以省略,編譯器會自動統計資料的個數然後告訴陣列。

sizeof(arr)/sizeof(arr[0]) = 陣列的長度

練習1:定義乙個長度為10的陣列並初始化,計算出最大值,最小值以及平均值。

#include int main(int argc,const char* ar**);

int max = arr[0], min = arr[0], sum = 0;

for(int i=0;i<10;i++)

if(min > arr[i])

sum+=arr[i];

}

printf("\n%d %d %d", max, min, sum/10);

return 0;

}練習2:定義乙個長度為10的陣列並初始化,進行公升序排序。

#include int main(int argc,const char* ar**);

for(int i=0;i<10;i++)

}

}

for(int i=0;i<10;i++)

return 0;

}

越界:為了程式的運算效率是不會檢查陣列的下標。

陣列越界的後果:

1、一切正常。

2、段錯誤

3、髒資料

練習3:定義乙個長度為10的陣列並初始化,找出陣列中第二個大的值。

#include int main(int argc,const char* ar**);

int max=arr[0]>arr[1]?arr[0]:arr[1];

int max2=arr[0]>arr[1]?arr[1]:arr[0];

for(int i=2;i<10;i++)

// arr[i] < max

else if(arr[i] > max2)

}

printf("%d %d", max, max2);

return 0;

}

二維陣列:

一維陣列相當於把變數排成一排,通過編號訪問。

二維陣列相當於把變數排成矩陣,通過行號和列號訪問。

定義:型別 陣列名[行數][列數];

int arr[3][5];

[0,0][0,1][0,2][0,3][0,4]

[1,0][1,1][1,2][1,3][1,4]

[2,0][2,1][2,2][2,3][2,4]

使用:陣列名[行下標][列下標]

行下標:0 ~ 行數-1

列下標:0 ~ 列數-1

遍歷:需要與雙層for迴圈配合,外層迴圈負責遍歷行,內層迴圈負責遍歷列。

for(int i=0; i<3; i++)

printf(」\n");

}初始化:型別 陣列名[行數][列數] = ,,};

練習4、定義乙個5*5的陣列,找出其中的最小值下標,計算周的和是多少。

//這個還沒寫出來,可以等一手

變長陣列:

定義陣列時使用變數當作它長度,在**編譯期間陣列的度是不確定的,當執行到陣列的定義語句時它的長度才家有確定下來,一旦確定就無法更改了。

優點:可以根據實際情況來確定陣列長度達到節約記憶體目的。

缺點:不可以初始化

練習5:顯示n層楊輝三角形。

11 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

1 6 15 20 15 6 1

#include int main(int argc,const char* ar**)

{int n;

printf("請輸入乙個整數:");

scanf("%d", &n);

int arr[n][n];

for(int l=0;l進製轉換、原反補

函式型別限制:const static volatile register extern

指標字串

堆記憶體管理

標準C學習day04 運算子 分支語句

根據需要的數字不同可以把操作符分為 三種 單目操作符,雙目操作符和 三目操作符 加減乘除用 四個操作符表示 如果參與除法計算的兩個數字都是整數 則計算結果只保留整數部分 用來表示取餘操作 15 6結果是3 15可以分解成12 12是 的整數倍,是乙個比 小的數字 賦值操作符用 表示 賦值語句本身也可...

day04 資料寬度

第4節 資料寬度 資料寬度 在上節課了解0和1的關係,同時計算機儲存資料,不是無限制可以儲存任意資料的,在我們現實中只儲存乙個數字的話,要麼把數字寫到本子上或記錄到腦子裡,那麼把它看成無限大的,但是在計算機中不是這樣的由於計算機受到硬體的約束,我們在儲存資料的時候它是有長度限制的。我們稱這個長度的限...

Day04 迴圈結構

如果在程式中我們需要重複的執行某條或某些指令,例如用程式控制機械人踢足球,如果機械人持球而且還沒有進入射門範圍,那麼我們就要一直發出讓機械人向球門方向奔跑的指令。當然你可能已經注意到了,剛才的描述中其實不僅僅有需要重複的動作,還有我們上乙個章節講到的分支結構。再舉乙個簡單的例子,比如在我們的程式中要...