數組

一:一維數組
【1】數組的定義:

//定義數組前 必須明確 有幾個元素 每個元素類型啥?
//需求:定義一個數組 有10個元素 每個元素爲int類型

//數組定義步驟:
//1、數組名 與[]結合是數組 (與*結合是指針 與()是函數)
//2、將元素的個數 放入[]中
//3、用元素的類型 定義一個變量
//4、從上往下 整體替換int arr[10];

//數組分析步驟:
在這裏插入圖片描述
【2】數組元素的概述


void test01(){
//有10個元素 元素的下標從0開始 0~9
//arr[0] 第0個元素 ~arr[9]第9個元素int arr[10];
//arr數組名作爲類型 代表的是數組的總大小 = 元素的個數 * 每個元素的大小
printf("sizeof(arr) = %d\n",sizeof(arr));//數組的總大小
printf("sizeof(arr[0]) = %d\n",sizeof(arr[0]));//第0個元素的大小
//數組的個數 = 數組的總大小 / 元素的大小
int n = sizeof(arr)/sizeof(arr[0]);//元素的個數
//數值數組 不能整體操作 只能逐個元素操作
for (int i = 0; i < n; i++){
//{}裏面定義的數組爲局部數組 不初始化 內容爲隨機
printf("第%d個元素爲%d\n", i, arr[i]);
}
}

【3】數組初始化
在這裏插入圖片描述
【4】數組元素的讀寫操作
在這裏插入圖片描述
案例一
定義是個int元素的數組 初始化爲0 獲取鍵盤輸入 並遍歷數組


void test04()
{int arr[10] = {0};
int n = sizeof(arr)/sizeof(arr[0]);
//獲取輸入
printf("請輸入%d個元素\n", n);
for (int i = 0; i < n; i++){scanf("%d", &arr[i]);}
//遍歷for 
(int i = 0; i < n; i++)
{
printf("%d ", arr[i]);
}
printf("\n");
}

案例二:
定義十個int元素的數組 初始化爲0 獲取鍵盤輸入 並對數組逆置


void test04()
{int arr[10] = {0};
int n = sizeof(arr)/sizeof(arr[0]);
//獲取輸入
printf("請輸入%d個元素\n", n);
for (int i = 0; i < n; i++)
{
scanf("%d", &arr[i]);
}
//數組元素顛倒
for (int i = 0, j = n-1; i < j; i++,j--)
{
int tmp = 0;
tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
//遍歷
for (int i = 0; i < n; i++){
printf("%d ", arr[i]);
}
printf("\n");
}

二:二維數組
在這裏插入圖片描述
在這裏插入圖片描述
【1】遍歷二維數組


void test06()
{
int arr[3][4];
int row = sizeof(arr)/sizeof(arr[0]);
int col = sizeof(arr[0])/sizeof(arr[0][0]);
//遍歷二維數組//循環嵌套循環 先寫內層循環(將外層固定)
for (int i = 0; i < row; i++)
{
for (int j = 0; j < col; j++)
{
printf("%d ", arr[i][j]);
}
printf("\n");
}
}

【2】二維數組初始化


void test07()
{
//分段初始化
int arr[3][4]={ {1,2,3,4}, {5,6,7,8}, {9,10,11,12} };
int row = sizeof(arr)/sizeof(arr[0]);
int col = sizeof(arr[0])/sizeof(arr[0][0]);
for (int i = 0; i < row; i++)
{
for (int j = 0; j < col; j++)
{
printf("%d ", arr[i][j]);
}
printf("\n");
}
//連續初始化
int arr2[3][4]={1,2,3,4,5,6,7,8,9,10,11,12 };
row = sizeof(arr2)/sizeof(arr2[0]);
col = sizeof(arr2[0])/sizeof(arr2[0][0]);
for (int i = 0; i < row; i++)
{
for (int j = 0; j < col; j++)
{
printf("%d ", arr2[i][j]);
}
printf("\n");
}
//綜合案例:
int arr3[3][4] = {{1,2},{3},{4,5}};
int arr4[3][4] = {1,2,3,4,5};
printf("%d\n",arr3[1][2]+arr4[1][2]);}

【3】二維數組的讀寫操作
在這裏插入圖片描述
在這裏插入圖片描述
三:字符數組


void test01()
{
//需求:定義一個數組 32個元素 每個元素爲char 這就是字符數組
//arr作爲類型 代表的是數組的總大小
//數組名作爲地址 代表的是 數組的首元素地址char arr[32] = "";
//獲取鍵盤輸入 %s和scanf結合時候 遇到空格 回車 結束輸入printf("請輸入一個字符串:");scanf("%s", arr);
printf("arr=%s\n",arr);
//如果想獲取帶空格的字符串fgets
//fgets(存放的位置, 獲取字符長度的上限, 從哪兒獲取字符串);
char str[32]="";
fgets(str, sizeof(str), stdin);//stdin標準輸入設備(鍵盤)
printf("str = ##%s##\n", str);
}

四:二維的字符數組
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章