【角色測評】你也是來喝咖啡的嗎?「優妮」角色測評及抽取建議
阿新 • • 發佈:2022-03-30
6.1 知識點
陣列的定義:
型別說明符 陣列名[ 常量 表示式]
例如:int a[100];
注意事項
- 下標從 0 開始(注意下標越界問題)
- 陣列長度說明只能是常量表達式,不能有變數
- 一個數組中的元素在記憶體中佔用一片連續的儲存但願
- 陣列內的資料的型別均一致
舉例
/**********/
int n = 10;
int a[n]; //非法(出現了變數n)
/**********/
#define n 10
int a[n]; //合法
/**********/
int a[2*5]; //合法
/**********/
陣列元素的引用
陣列名[下標]
數學中:
- x1、x2
C 語言中:
- 普通變數:x1、x2
- 下標變數:x[1]、x[2]
注意事項
- 下標可以是常量、變數和表示式
- 不能對陣列名整體賦值、輸入、輸出。只能逐個元素引用
對陣列元素整體賦值
int a[10];
for(int i = 0; i <= 9; i++)
{
a[i] = 0;
}
用陣列實現 Fibonacci 數列的前 20 項
#include <stdio.h> #defint N 20 void main() { int i; int fib[N]; fib[0] = fib[1] = 1; for(i = 2; i < N; i++) { fib[i] = fib[i-2] + fib[i-1]; } for(i = 1; i < N; i++) { printf("%6d", fib[i]); if(i % 4 == 0) { printf("\n"); } } }
陣列的初始化
int x[N] = {1, 2, 3, ...} //特注:N指代一個常量表達式
下為以上的說明
- N = '{}'內的數的個數 ==> 按順序給陣列內的元素初始化
- N > '{}'內的數的個數 ==> 先按順序給陣列內的元素初始化,剩餘不夠的部分,預設初始化為 0
- N = NULL(即沒有 N) ==> 自動初始化,'{}'內有幾個數,陣列長度就會擴大到相應長度
排序演算法
輸出 10 個整數中的最小值及其位置
思路:
原始碼
#include <stdio> void main() { int i, j; int a[10]; for(i = 0; i <= 9; i++) { scanf("%d", &a[i]); } k = 0; for(i = 1; i <= 9; i++) { if(a[i] < a[k]) { k = i; } } printf("min = %d position = %d\n", a[k], k); }
用選擇法對 10 個整數從大到小排序(選擇排序)
思路
原始碼
#include <stdio.h>
void main()
{
int a[10];
int i, j, k, t;
printf("Input 10 numbers:\n");
for(i = 0; i < 9; i++)
{
scanf("%d", &a[i]);
}
for(i = 0; i < 9; i++)
{
k = i;
for(j = i + 1; j <= 9; j++)
{
if(a[j] < a[k])
{
k = j;
}
}
t = a[i];
a[i] = a[k];
a[k] = t;
}
printf("The sorted numbers:\n");
for(i = 0; i < 9; i++)
{
printf("%d", a[i]);
}
}
6.2 知識點
二維陣列的定義
型別說明符 陣列名[常量表達式1] [常量表達式2]
二維陣列的引用
表示方法
陣列名[行下標][列下標]
說明
- 其引用方法與一維陣列的陣列元素的引用類似
- 通常用 for 語句的雙重迴圈巢狀對二維陣列元素逐個引用
- 利用二維陣列可以很方便地處理數學中的矩陣問題
二維陣列的初始化
表示方法
型別說明符 陣列名[常量表達式 1][常量表達式2] = {初始資料};
實現
- 分行賦初值
- 將所有資料寫在一個{}內
- 對部分元素賦初值
- 若對全部元素都賦初值,定義陣列時可以不指定行的大小,但必須指定列的大小
6.3 知識點
字元陣列的定義
char 陣列名[常量表達式];
char 陣列名[常量表達式 1][常量表達式2];
字元陣列的引用
- 字元陣列的引用也是使用下標,引用陣列元素
- 對字元陣列不能整體賦值,但可以使用輸入輸出函式對字元陣列進行整體輸入和輸出
字元陣列的初始化
- 對全部元素賦初值
- 可以只給部分元素賦初值
用字串常量對字元陣列初始化
- 定義字元陣列時忽略陣列長度
- 字元陣列初始化時指定了陣列的長度