弗原創IT教育中心 第3讲数组 为了解决比较复杂的问题,本章介绍C语言提供的 种最简单的构造类型—一数组。 3.11维数组的定义和引用 3.22维数组的定义和引用 3.3字符数组与字符串
为了解决比较复杂的问题,本章介绍 C语言提供的 一种最简单的构造类型──数组。 3.1 1维数组的定义和引用 3.2 2维数组的定义和引用 3.3 字符数组与字符串 第 3 讲 数 组
弗原創IT教育中心 3.11维数组的定义和引用 3.1.11维数组的定义 3.121维数组元素的引用 3.131维数组元素的初始化 3.141维数组应用举例
3.1 1 3.1 1维数组的定义和引用 维数组的定义和引用 3.1.1 1 3.1.1 1维数组的定义 3.1.2 1 3.1.2 1维数组元素的引用 维数组元素的引用 3.1.3 1 3.1.3 1维数组元素的初始化 维数组元素的初始化 3.1.4 1维数组应用举例 维数组应用举例
弗原創IT教育中心 31.11维数组的定义 [案例3.11从键盘上任意输入10个整数,要求 按从小到大的顺序在屏幕上显示出来。 (1)首先将相邻的A[m与A[n-1进行比较,如 果A[叫的值小于A[n1的值,则交换两者的位 置,使较小的上浮,较大的下沉;接着比较A[n-1 与A[m-2],同样使小的上浮,大的下沉。依此类 推,直到比较完A2和A[后,A[为具有最小排 序码(数值)的元素,称第一趟排序结束。 (2)然后在A叫A2区间内,进行第二趟排 序,使剩余元素中排序码最小的元素上浮到 A[2];重复进行n-1趟后,整个排序过程结束
3.1.1 1 3.1.1 1维数组的定义 [案例3.1] 从键盘上任意输入 从键盘上任意输入10个整数,要求 按从小到大的顺序在屏幕上显示出来。 按从小到大的顺序在屏幕上显示出来。 ( 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[n]~A[2]区间内,进行第二趟排 区间内,进行第二趟排 序,使剩余元素中排序码最小的元素上浮到 序,使剩余元素中排序码最小的元素上浮到 A[2];重复进行 n - 1趟后,整个排序过程结束。 趟后,整个排序过程结束
弗原創IT教育中心 /*案例代码文件名:*/ /*功能:从键盘上任意输入n个整数,用冒泡法 按从小到大地排序,并在屏幕上显示出来。* include stdio. h" #define num 10 /*定义符号常量* maino { int data NUM;/*定义1个维数组dat*/ int 1,],temp; corsarO printf( Please input 10 numbers: \n") for(i=0; i<NUM; 1++) scanf(%/od,&data li;
/*案例代码文件名: 案例代码文件名:*/ /*功能:从键盘上任 功能:从键盘上任意输入n个整数,用冒泡法 个整数,用冒泡法 按从小到大地排序,并在屏幕上显示出来。 按从小到大地排序,并在屏幕上显示出来。*/ #include " #include "stdio.h stdio.h" #define NUM 10 #define NUM 10 /*定义符号常量*/ main() { int data[NUM]; data[NUM]; /*定义1个1维数组data*/ int i,j,temp; i,j,temp; clrscr(); printf("Please printf("Please input 10 numbers: input 10 numbers:\n"); for(i=0; i<NUM; i++) for(i=0; i<NUM; i++) scanf("%d scanf("%d", &data[i]); ", &data[i]);
弗原創IT教育中心 /*冒泡法排序* for(i=0; I<NUM-1; i++) 兴for(j=NUM-1;j>j)/*内循环:进行每趟比较 if(data l]sdatalj-1 temp=data11 datal]=data j-1] datali-1=temp; /*输出排序后的数据* printf( \nthe result of sort: \n) for(i=0; i<NUM; 1++) printf(%/od",datai) 程序运行(8)
/*冒泡法排序*/ for(i=0; i<NUM for(i=0; i<NUM-1; i++) 1; i++) for(j=NUM for(j=NUM-1; j>i; j 1; j>i; j--) /*内循环:进行每趟比较 内循环:进行每趟比较 */ if(data[j]<data[j if(data[j]<data[j-1]) {temp=data[j]; {temp=data[j]; data[j]=data[j data[j]=data[j-1]; data[j-1]=temp; 1]=temp; } /*输出排序后的数据 输出排序后的数据*/ printf(" printf("\nthe result of sort: result of sort:\n"); for(i=0; i<NUM; i++) for(i=0; i<NUM; i++) printf("%d printf("%d ",data[i]); } 程序运行(8)