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;

}

```mermaid flowchart TD A[C++ 基础语法] --> B[基本元素] A --> C[数据类型] A --> D[运算符] A --> E[控制流语句] A --> F[函数] A --> G[输入输出] B --> B1[关键字] B --> B2[标识符] B --> B3[常量] B --> B4[变量] B1 --> B11[数据类型关键字] B1 --> B12[控制流关键字] B1 --> B13[存储类关键字] B2 --> B21[命名规则] B2 --> B22[作用域] B3 --> B31[整数常量] B3 --> B32[浮点常量] B3 --> B33[字符常量] B3 --> B34[字符串常量] B4 --> B41[变量声明与定义] B4 --> B42[变量初始化] B4 --> B43[变量作用域和生命周期] C --> C1[基本数据类型] C --> C2[复合数据类型] C --> C3[指针] C --> C4[引用] C1 --> C11[整型] C1 --> C12[浮点型] C1 --> C13[字符型] C1 --> C14[布尔型] C2 --> C21[数组] C2 --> C22[结构体] C2 --> C23[联合体] C2 --> C24[枚举] C21 --> C211[一维数组] C21 --> C212[多维数组] C22 --> C221[结构体定义] C22 --> C222[结构体成员访问] C3 --> C31[指针声明与初始化] C3 --> C32[指针运算] C3 --> C33[指针与数组] C3 --> C34[指针与函数] C4 --> C41[引用声明与初始化] C4 --> C42[引用作为函数参数] D --> D1[算术运算符] D --> D2[关系运算符] D --> D3[逻辑运算符] D --> D4[位运算符] D --> D5[赋值运算符] D --> D6[条件运算符] D --> D7[其他运算符] E --> E1[条件语句] E --> E2[循环语句] E --> E3[跳转语句] E1 --> E11[if 语句] E1 --> E12[switch 语句] E11 --> E111[简单 if 语句] E11 --> E112[if - else 语句] E11 --> E113[if - else if - else 语句] E2 --> E21[for 循环] E2 --> E22[while 循环] E2 --> E23[do - while 循环] E3 --> E31[break 语句] E3 --> E32[continue 语句] E3 --> E33[return 语句] F --> F1[函数定义与声明] F --> F2[函数参数传递] F --> F3[函数重载] F --> F4[递归函数] F --> F5[内联函数] F2 --> F21[值传递] F2 --> F22[引用传递] F2 --> F23[指针传递] G --> G1[标准输入输出流] G --> G2[文件输入输出] G1 --> G11[cin 对象] G1 --> G12[cout 对象] G1 --> G13[格式化输入输出] G2 --> G21[文件打开与关闭] G2 --> G22[文件读写操作] ``` 把这个mermaid,转化生成思维导图
最新发布
03-14
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值