Part1: 数组数据结构
数组是一种构造类型。 "构造"体现在,它是在基本数据类型int, float, double, char的基础上,把类型相同
的数据组织在一起。但是,又不是随意组织在一起的。而是存储在一组连续的内存空间中。
因此,归纳起来,数组这种数据结构的特点就在于:
1. 类型相同的一组数据构成的集合
2. 这一组数据在内存中连续存放
连续存放这个特性,使得一些问题求解变得易于处理。因为一旦确定了第一个数据的位置,就可以
顺序找到第二个数据,第三个数据,...有利于顺序对一组数据做处理
1.通过实验观察验证数据中数据是否是连续存放的?
再进行程序后,分别修改了line5和line9,其运行结果如下
Part2: 一维数组的定义、初始化以及数组元素的引用方法
运行结果如下:
Part3: 数组作为函数参数
1.数组元素作为函数参数
2.数组名作为函数实参数
Part4: 用冒泡法对一组数据由小到大排序
对一组数据进行排序(由小到大,或者,有大到小)有很多经典的排序算法。冒泡法是其中的一种。
冒泡法的算法思想:
把一组数据中相邻的两个数进行比较,较大的数放到后面。
这样,经过一轮以后,最大的数就放到了最后。
把剩余的数,再进行两两比较,经过第2轮后,第2大的数就放到了倒数第二的位置。
接下来,做类似操作
在这一实验过程中,可发现:
1.数组作为形参书写形式为:[const] 元素类型 数组名[ ] 或者 [const] 元素类型 * 变量名
2.数组名后的[ ]不能省略。
3.数组作为参数时,实参中只需写是参数组名,不能去其他地址。
4.数组名作为函数调用时的实参,实际上传递给形参的是数组的首地址。
5.在参数传递过程中:
(1)用数组名作函数参数时,要求形参和相对应的实参是类型相同的数组,否则会出错。
(2)在函数形参中,允许不给出形参数组的长度,或用一个变量来表示数组元素的个数。
6.冒泡排序就是从左到右,相邻元素之间的比较,每比较一轮就会有一个最值,这个最值就会从序列的最右边冒出。
Part5 编程练习:
练习1:补全程序,查找一组整型数据的最大值。
程序如下:
// 功能描述:输入一组整数,输出最大值 #includeint findMax(int a[], int n); const int N=5; int main() { int a[N]; int max, i; printf("输入%d个整数: \n", N); for(i=0;i ) scanf("%d", &a[i]); max=findMax(a,N); printf("数组a中最大元素值为: %d\n\n", max); return 0; } int findMax(int b[],int m) { int max=b[0],j; for(j=1;j ) { if(b[j]>max) max=b[j]; } return max; }
运行结果如下:
在此过程中,我因为在for语句后面误打了一个";",所以造成了下面的错误:
练习2:补全程序,使用冒泡法对字符数组由大到小排序。
代码如下:
#includeconst int N=4; void output(char x[], int n); // 函数声明 void rank(char x[],int n); int main() { char string[N] = {'2','0','1','9'}; int i; printf("排序前: \n"); output(string, N); rank(string,N ); printf("\n排序后: \n"); output(string, N); printf("\n"); return 0; } // 函数定义 // 函数功能描述:输出包含有n个元素的字符数组元素 // 形参:字符数组,以及字符数组元素个数 void output(char x[], int n) { int i; for(i=0; i ) printf("%c", x[i]); } // 函数定义 // 函数功能描述:对一组字符由大到小排序 // 形参:字符数组,以及字符数组元素个数 // 补足代码3 void rank(char x[],int n) { int i,j; char t; for(i=0;i 1;i++) { for(j=0;j 1-i;j++) { if(x[j] 1]) { t=x[j]; x[j]=x[j+1]; x[j+1]=t; } } } }
运行结果如下:
此过程在做时,出现很多困难,借助了很多东西。
评论以下三位同学:
https://www.cnblogs.com/jiyuan201088/p/10770693.html
https://www.cnblogs.com/wyx-wyx/p/10771761.html
https://www.cnblogs.com/fujinzu/p/10771776.html