商业网站开发实训报告,鄂州一网,注册公司网站开发建设营业项目,模板网官网数组一维数组数组#xff1a;是相同类型元素的一个集合。在内存中是一段连续的空间。数组下标数组下标规则 C语言规定数组是有下标的#xff0c;下标是从0开始的#xff0c;假设数组有n个元素#xff0c;最后一个元素的下标是n-1#xff0c;下标就相当于数组元素的编号通过…数组一维数组数组是相同类型元素的一个集合。在内存中是一段连续的空间。数组下标数组下标规则C语言规定数组是有下标的下标是从0开始的假设数组有n个元素最后一个元素的下标是n-1下标就相当于数组元素的编号通过数组下标访问/输入元素一维数组在内存当中的存储数组的定义是相同类型元素的一个集合。在内存中是一段连续的空间。意味着每个元素与每个元素之间内存是连续的。拿int类型举例#includestdio.hint main(){int arr[10] { 1,2,3,4,5,6,7,8,9,10 };int i 0;for (i 0; i 10; i){//这里打印地址的时候采用的是十进制printf(arr[%d] %d\n, i, arr[i]);}return 0;}输出结果由于是整型数组每个元素是4个字节所以地址间隔也是4。二分查找题目给定一个升序的整型数组在这个数组中查找到指定的值n找到了就打印n的下标找不到就打印找不到。提示在一个升序的数组中查找指定的数字n很容易想到的方法就是遍历数组但是这种方法效率比较低。例如#define _CRT_SECURE_NO_WARNINGS#includestdio.h//缺陷无法停止int main(){while (1){int arr[10] { 1,2,3,4,5,6,7,8,9,10};int len sizeof(arr) / sizeof(arr[0]);int left 0;int right len - 1;int a 0;printf(输入一个整数);scanf_s(%d, a);while (left right){//int mid ( left right ) / 2;int mid left (right - left)/2;//另一种写法//优点不会数组越界if (arr[mid] a){right mid - 1;}else if (arr[mid] a){left mid 1;}else{printf(它的下标是“%d”\n, mid);break;}}if (left right){printf(找不到(超出了数组范围\n);}}return 0;}二维数组特殊的一维数组二维数组是相同数据类型元素按行和列排列的矩形集合可以把二维数组写成行和列的排列形式来理解二维数组的逻辑 结构。语法如下type arr_name[常量值1][常量值2][常量值1]行 [常量值2]列二维数组访问规则二维数组的访问也是通过[]的方式进行访问。对于二维数组int array[M][N], 说明如下1. M和N都必须为常数2. M代表数组有M行N代表每行中有N个元素3. 其中M可以省略省略后必须给出初始化表达式编译器从初始化结果中推断数组有多少行4. N一定不能省略因为N省略了就不能确定一行有多少个元素也不能确定数组有多少行整型的二维数组每个元素4个字节。所以各地址之间间隔为4。通过数组下标访问/输入元素例如1. 编写一个程序实现一个3×3矩阵的转置操作。矩阵转置是指将矩阵的行和列互换即原矩阵的 第i行第j列元素变为转置矩阵的第j行第i列元素。转置前1 2 3 转置后 1 4 74 5 6 2 5 87 8 9 3 6 9#define _CRT_SECURE_NO_WARNINGS//编写一个程序实现一个3×3矩阵的转置操作。矩阵转置是指将矩阵的行和列互换即原矩阵的 第i行第j列元素变为转置矩阵的第j行第i列元素。#includestdio.hint main(){int arr[3][3] { 0 };int a 3;int b 3;int tmp 0;printf(请输入九个数;\n);for (int i 0; i a; i){for (int j 0; j b; j){scanf_s(%d, arr[i][j]);}}printf(转置后\n);for (int i 0; i a; i){for (int j i 1; j b; j){tmp arr[i][j];arr[i][j] arr[j][i];arr[j][i] tmp;}}//打印读取数组for (int i 0; i a; i){for (int j 0; j b; j){printf(%d , arr[i][j]);}printf(\n);}return 0;}C99中的变长数组在C99标准之前C语言在创建数组的时候数组大小的指定只能使用常量、常量表达式或者如果我们初始化数据的话可以省略数组大小。int arr1[10];int arr2[35];int arr3[] {1,2,3};这样的语法限制让我们创建数组就不够灵活有时候数组大了浪费空间有时候数组又小了不够用的。C99中给一个变长数组variable-length array简称 VLA的新特性允许我们可以使用变量指定数组大小。请看下面的代码int n a b;int arr[n];上面示例中数组arr就是变长数组因为它的长度取决于变量n的值编译器没法事先确定只有运行时才能知道n是多少。变长数组的根本特征就是数组长度只有运行时才能确定所以变长数组不能初始化。变长数组的好处是1.程序员不必在开发时随意为数组指定一个估计的长度程序可以在运行时为数组分配精确的长度。2.有一个比较迷惑的点变长数组的意思是数组的大小是可以使用变量来指定的在程序运行的时候根据变量的大小来指3.定数组的元素个数而不是说数组的大小是可变的。数组的大小一旦确定就不能再变化了。注意1.在VS2026上虽然支持大部分C99的语法但没有支持C99中的变长数组没法测试。2.部分OJ题上是支持的我们可以直接定义和使用。以上就是此次学习的内容记录如果我在此次学习记录中有疏忽的地方请您批评指出我下次会继续努力期待您的批评和建议