第5章数据的顺序存储结构及应用 为了解决比较复杂的问题,本章介绍C语言提供的 种最简单的构造类型—数组及应用。 511维数组的定义和引用 522维数组的定义和引用 53字符数组与字符串 54数组作为函数参数 55线性表 5.6栈 57队列
返回本章首页 下一页 上一页 为了解决比较复杂的问题,本章介绍C语言提供的 一种最简单的构造类型──数组及应用。 5.1 1维数组的定义和引用 5.2 2维数组的定义和引用 5.3 字符数组与字符串 5.4 数组作为函数参数 5.5 线性表 5.6 栈 5.7 队列 第5章 数据的顺序存储结构及应用 上一章 返回目录 下一章
5.11维数组的定义和引用 5.1.11维数组的定义 51.21维数组元素的引用 51.31维数组元素的初始化 5141维数组应用举例
返回本章首页 下一页 上一页 5.1 1维数组的定义和引用 5.1.1 1维数组的定义 5.1.2 1维数组元素的引用 5.1.3 1维数组元素的初始化 5.1.4 1维数组应用举例
5.1.11维数组的定义 案例51]从键盘上任意输入10个整数,要求按从小到大的顺序 在屏幕上显示出来。 排序的方法有很多,本题采用冒泡法 冒泡法的基本思想:通过相邻两个数之间的比较和交换,使排序 码(数值)较小的数逐渐从底部移向顶部,排序码较大的数逐渐从顶 部移向底部。就像水底的气泡一样逐渐向上冒,故而得名。 由An]~A[]组成的n个数据,进行冒泡排序的过程可以描述为 1)首先将相邻的A[n与A[n-进行比较,如果An]的值小于 A[n-1]的值,则交换两者的位置,使较小的上浮,较大的下沉;接着 比较An-1与A[n-2],同样使小的上浮,大的下沉。依此类推,直到 比较完A[2]和A口后,A[为具有最小排序码(数值)的元素,称第 趟排序结束 (2)然后在An]~A[2]区间内,进行第二趟排序,使剩余元素中 排序码最小的元素上浮到A[2]:重复进行n-1趟后,整个排序过程结 束
返回本章首页 下一页 上一页 5.1.1 1维数组的定义 [案例5.1] 从键盘上任意输入10个整数,要求按从小到大的顺序 在屏幕上显示出来。 排序的方法有很多,本题采用冒泡法。 冒泡法的基本思想:通过相邻两个数之间的比较和交换,使排序 码(数值)较小的数逐渐从底部移向顶部,排序码较大的数逐渐从顶 部移向底部。就像水底的气泡一样逐渐向上冒,故而得名。 由A[n]~A[1]组成的n个数据,进行冒泡排序的过程可以描述为: (1)首先将相邻的A[n]与A[n-1]进行比较,如果A[n]的值小于 A[n-1]的值,则交换两者的位置,使较小的上浮,较大的下沉;接着 比较A[n-1]与A[n-2],同样使小的上浮,大的下沉。依此类推,直到 比较完A[2]和A[1]后,A[1]为具有最小排序码(数值)的元素,称第 一趟排序结束。 (2)然后在A[n]~A[2]区间内,进行第二趟排序,使剩余元素中 排序码最小的元素上浮到A[2];重复进行n-1趟后,整个排序过程结 束
/*案例代码文件名:AL51C* *功能:从键盘上任意输入n个整数,用冒泡法按从小到大地排序, 并在屏幕上显示出来。*/ #include"stdio. h" #define num 10 *定义符号常量(数据个数N)*/ maint i int data NUM *定义1个1维整型数组data*/ int 1, ], temp, *定义循环变量和临时变量* clrscrO /*库函数 rclrscrO:清屏* printf("Please input 10 numbers: n for(i=0; K<NUM; i++) scanf(%od",&datai)
返回本章首页 下一页 上一页 /*案例代码文件名:AL5_1.C*/ /*功能:从键盘上任意输入n个整数,用冒泡法按从小到大地排序, 并在屏幕上显示出来。*/ #include "stdio.h" #define NUM 10 /*定义符号常量(数据个数N)*/ main() { int data[NUM]; /*定义1个1维整型数组data*/ int i,j,temp; /*定义循环变量和临时变量*/ clrscr(); /*库函数clrscr():清屏*/ printf("Please input 10 numbers:\n"); for(i=0; i<NUM; i++) scanf("%d", &data[i]);
/*冒泡法排序* for(i=0;iNUM-l;计+)/*外循环:控制比较趟数* for(j=NUM-1;j>i;j-)/*内循环:进行每趟比较* if( data[i]<data[j-1)/*如果 dataloG大于 datalj-1],交换两者的位置* temp=datal data[jil=datalj-11 data[j-1=temp /*输出排序后的数据* printf("nthe result of sort: n") for(i=0; I<NUM; 1++) printf("%od",datai) getcho /*等待键盘输入任一字符,目的使程序暂停*
返回本章首页 下一页 上一页 /*冒泡法排序*/ for(i=0; i<NUM-1; i++) /*外循环:控制比较趟数*/ for(j=NUM-1; j>i; j--) /*内循环:进行每趟比较*/ if(data[j]<data[j-1]) /*如果data[j]大于data[j-1],交换两者的位置*/ {temp=data[j]; data[j]=data[j-1]; data[j-1]=temp; }; /*输出排序后的数据*/ printf("\nthe result of sort:\n"); for(i=0; i<NUM; i++) printf("%d ",data[i]); getch(); /*等待键盘输入任一字符,目的使程序暂停*/ }