C4-一維數組、字符數組

一、一維數組
1.定義

2.定義的四種形式:

二、數組排序(*冒泡排序、選擇排序、快速排序等)
冒泡排序:

三、字符數組

代碼:

int main(int argc, const char * argv[]) {

//類型說明符 變量名 初值

// int a = 0;

//定義一個數組
//類型說明符 變量名 初值
//注意:1.數組中的每一個元素類型都相同
//     2.變量名同樣要滿足定義普通變量的要求
//     3.數組名方括號"[]"中要加"常量表達式"

// int array[5] = {1, 2, 3, 4, 5};

//初值的第二種寫法
//相當於{3.1, 4.4, 5.6, 0, 0}

// float arrayF[5] = {3.1, 4.4, 5.6};

//初值第三種寫法
//相當於{0, 0, 0, 0, 0}

// int arrayE[5] = {0};

//初值的第四種寫法
//根據初值的個數來自動分配數組元素個數
//注意:定義數組時一定要指定好元素個數

// int arrayI[] = {1, 2, 3, 4, 5};

//一維數組定義練習

// double arrayA[10] = {1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0};
// short arrayB[8] = {1, 2, 3, 4};
// char arrayC[4] = {0};
// int arrayD[] = {1, 2, 3, 4};
// char arrayM[5] = {‘a’, ‘b’, ‘c’, ‘d’, ‘e’};

//使用數組中的元素
//數組名[元素標號]
//注意:標號是從0開始的

// array[2] = 5;

//注意:越界錯誤!!!數組下標從0開始!!!
//相當於出軌

// int array[5] = {0};
// array[5] = 10;

//數組輸出

// int array[5] = {1, 2, 3, 4, 5};
// printf(“%d “, array[0]);
// printf(“%d “, array[1]);
// printf(“%d “, array[2]);
// printf(“%d “, array[3]);
// printf(“%d “, array[4]);
// //for (int i = 0; i < 5; i++) {
// // printf(“%d “, array[i]);
// //}

// int array[1000] = {1, 2, 3};
//printf(“%d “, array[99]);

// int i = 1;
//引用數組元素,注意與定義的區分
//1.定義數組時要有類型說明符,引用時沒有
//2.定義數組,”[]”中只能是加常量表達式,引用數組”[]”中可以是常量表達式,也可以是變量表達式
// printf(“%d “, array[i]);

//注意i的初始值和最終值,小心數組越界!!!
//數組是一個整體,不能直接參與運算,只能對單個元素進行處理,通常用到數組的地方都會用到循環
//名詞:"遍歷"->分別對數組中的元素進行一次操作

// for (int i = 0; i < 1000; i++) {
// //注意下標從0開始
// //將數組中每一個元素賦值爲不同值
// array[i] = i;
// }

// for (int i = 0; i < 1000; i++) {
// printf(“%d “, array[i]);
// }
// printf(“\n”);

//練習
// 1.

// int array[20] = {0},sum = 0;
// for (int i = 0; i < 20; i++) {
// array[i] = arc4random() % (70 - 30 + 1) + 30;
// printf(“%d “, array[i]);
// sum += array[i];
// }
// printf(“\n數組的和是:%d\n”, sum);

// 2.

// int arrayA[10] = {0}, arrayB[10] = {0};
// for (int i = 0; i < 10; i++) {
// arrayA[i] = arc4random();
// printf(“arrayA[%d]=%d “, i, arrayA[i]);
// arrayB[i] = arrayA[i];
// printf(“arrayB[%d]=%d “, i,arrayB[i]);
// printf(“\n”);
// }

// 3.生成兩個各有10元素數組,跟別求和存在另一個數組中

// int arrayA[10] = {0}, arrayB[10] = {0}, arrayC[10] = {0};
// for (int i = 0; i < 10; i++) {
// arrayA[i] = arc4random() % (40 - 20 + 1) + 20;
// printf(“arrayA[%d]=%d “, i, arrayA[i]);
// arrayB[i] = arc4random() % (40 - 20 + 1) + 20;
// printf(“arrayB[%d]=%d “, i, arrayB[i]);
// arrayC[i] = arrayA[i] + arrayB[i];
// printf(“arrayC[%d]=%d “, i, arrayC[i]);
// printf(“\n”);
// }

// int arr[10] = {0};
// for (int i = 0; i < 10; i++) {
// arr[i] = arc4random() % (40 - 20 + 1) + 20;
// printf(“%d “, arr[i]);
// }
// printf(“\n”);
// for (int i = 0; i < 10; i++) {
// if (7 == arr[i] % 10) {
// printf(“%d “, arr[i]);
// }
// }

//*******冒泡排序*******

// int a[10] = {0}, temp = 0;
// for (int i = 0; i < 10; i++) {
// a[i] = arc4random() % (40 - 20 + 1) + 20;
// printf(“%d “, a[i]);
// }
// printf(“\n排列之後的順序爲:\n”);
// //外循環控制進行幾輪比較
// //排序N個元素的數組,只需將循環條件改成N - 1
// for (int i = 0; i < 9; i++) {
// //進行每輪比較,找當前一輪的最值
// for (int j = 0; j < 9 - i; j++) {
// //若當前元素大於後一個,則交換
// if (a[j] > a[j + 1]) {
// //交換兩個元素
// temp = a[j];
// a[j] = a[j+1];
// a[j+1] = temp;
// }
// }
// }
// for (int i = 0; i < 10; i++) {
// printf(“%d “, a[i]);
//
// }
// printf(“\n”);

//對字符數組進行排序

// char arr[10] = {‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’, ‘g’, ‘h’, ‘i’, ‘j’};
// //或者 char arr[11] = “abcdefghij”;
// for (int i = 0; i < 9; i++) {
// for (int j = 0; j < 9 - i; j++) {
// if (arr[j] < arr[j + 1]) {
// int temp = arr[j];
// arr[j] = arr[j + 1];
// arr[j + 1] = temp;
// }
// }
// }
// for (int i = 0; i < 10; i++) {
// printf(“%c “, arr[i]);
// }
// printf(“\n”);

// char arrayC[] = {‘c’, ‘a’, ‘i’, ‘q’, ‘i’, ‘\0’};
// for (int i = 0 ; i < 6; i++) {
// printf(“%c”, arrayC[i]);
// }
// printf(“\n”);
//打印字符數組中的所有元素
//根據’\0’結束符來判斷是否結束
//字符串打印 “%s”
//字符串定義,系統會自動在字符串結尾添加結束符’\0’
//注意:定義字符數組時,要多定義一個空間給’\0’
// char arrayC[6] = “caiqi”;
// printf(“%s\n”, arrayC);

// strlen() 計算字符串長度
// strcpy() 字符串拷貝
// strcat() 字符串拼接
// strcmp() 字符串比較

//函數"strlen()"求字符串長度

// char arrayC[6] = “caiqi”;
// int i = 0;
// while (arrayC[i] != ‘\0’) {
// i++;
// }
// printf(“%d\n”, i);
// long ret = 0;
// //作用:求一個字符串的長度
// //用法:存長度的變量 = strlen(待判斷字符串)
// ret = strlen(arrayC);
// printf(“%ld\n”, ret);

//函數"strcpy()"字符串拷貝

// char arrayC[6] = “caiqi”;
// char temp[] = {0};
// //作用:複製一個字符串到另外一個字符數組中
// //用法:strcpy(目的數組,被複制的字符數組)
// //注意:temp要有足夠的空間來存
// //const修飾一個變量,此變量不再可以被改變
// strcpy(temp, arrayC);
// printf(“%s\n”, temp);

//函數"strcat()"字符串拼接

// char arrayC[6] = “caiqi”;
// char temp[12] = “xiao”;
// //作用:將arrayC與temp兩個字符串拼接起來,結果存於temp中(arrayC接在temp後面)
// //用法:strcat(字符串1, 字符串2);
// //注意:存字符串1的數組(即temp)需有足夠空間來存拼接後的字符串
// strcat(temp, arrayC);
// printf(“%s\n”, temp);

//函數"strcmp()"字符串比較

// char arrrayC[6] = “caiqi”;
// char temp[12] = “xiao”;
// int ret = 0;
// //作用:比較兩個字符串大小
// //用法:結果 = strcmp(字符串1, 字符串2);
// //解釋:當第一大於第二個時,ret > 0;相等 ret = 0;小於 ret < 0;
// //解釋:由左往右一次比較每個字符,當得到第一個不相等的字符,不再向後比較,並返回結果,結果爲ascii碼的差值
// ret = strcmp(temp, arrrayC);
// printf(“%d\n”, ret);

//練習:查數組中的空格個數

// int count = 0;
// char array[] = “I love iOS, i want an iPhone5s”;
// for (int i = 0; i < strlen(array); i++) {
// if (’ ’ == array[i]) {
// count++;
// }
// }
// printf(“%d\n”, count);

//字符串倒轉

// char array[] = “afjnpue”;
// long ret = strlen(array);
// for (int i = 0; i < ret / 2; i++) {
// char temp = array[i];
// array[i] = array [ret - 1 - i];
// array [ret - 1 - i] = temp;
// }
// printf(“%s\n”, array);

return 0;

}

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