1. 程式人生 > 遊戲資訊 >【角色測評】你也是來喝咖啡的嗎?「優妮」角色測評及抽取建議

【角色測評】你也是來喝咖啡的嗎?「優妮」角色測評及抽取建議

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];

字元陣列的引用

  • 字元陣列的引用也是使用下標,引用陣列元素
  • 對字元陣列不能整體賦值,但可以使用輸入輸出函式對字元陣列進行整體輸入和輸出

字元陣列的初始化

  • 全部元素賦初值
  • 可以只給部分元素賦初值

用字串常量對字元陣列初始化

  • 定義字元陣列時忽略陣列長度
  • 字元陣列初始化時指定了陣列的長度