维数组的初始化 初始化:即在数组定义时就赋初值 C规定,只有静态存储和外部存储的的数组才可以初 始化。#不同系统可能有不同,请上机试用 1对全部数组元素赋初值 static int a[10]={012345678$ 此时,a[0]=0,a[1]=1…a9=9 对全部元素初始化时,数组长度可不写。 2部分元素初始化,数组长度必须给出。 static int fibonacci[20]=(1, 1; 3不能给数组整体赋初值。如: static int a[10]={010} 应写为: static int a10]={0,0,0000,000.0 4静态型和外部型数组不赋初始值,系统自动赋以0值。 只初始化一部分的,未初始化的部分自动赋以0值
二、一维数组的初始化 初始化:即在数组定义时就赋初值 C规定,只有静态存储和外部存储的的数组才可以初 始化。#不同系统可能有不同,请上机试用。 1.对全部数组元素赋初值 – static int a[10]={0,1,2,3,4,5,6,7,8,9}; – 此时,a[0]=0,a[1]=1,......a[9]=9 – 对全部元素初始化时,数组长度可不写。 2.部分元素初始化,数组长度必须给出。 static int fibonacci[20]={1,1}; 3.不能给数组整体赋初值。如: static int a[10]={ 0*10}; 应写为:static int a[10]={0,0,0,0,0,0,0,0,0,0}; 4.静态型和外部型数组不赋初始值,系统自动赋以0值。 只初始化一部分的,未初始化的部分自动赋以0值
6.1.11维数组的定义 [案例6]从键盘上任意输入10个整数,要求按从小到大的顺序 在屏幕上显示出来。 排序的方法有很多,本题采用冒泡法。 冒泡法的基本思想:通过相邻两个数之间的比较和交换,使排序 码(数值)较小的数逐渐从底部移向顶部,排序码较大的数逐渐从 顶部移向底部。就像水底的气泡一样逐渐向上冒,故而得名。 由A[nA[组成的n个数据,进行冒泡排序的过程可以描述为 (1)首先将相邻的A[n]与A[n1进行比较,如果A[n]的值小于 A[n-1]的值,则交换两者的位置,使较小的上浮,较大的下沉;接着 比较A[n-1与A[n-2],同样使小的上浮,大的下沉。依此类推,直到 比较完A[2和A后,A为具有最小排序码(数值)的元素,称第 趟排序结束。 (2)然后在A[n~A2]区间内,进行第二趟排序,使剩余元素中 排序码最小的元素上浮到A[2];重复进行n1趟后,整个排序过程结 束
6.1.1 1维数组的定义 [案例6.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趟后,整个排序过程结 束
数组初始化举例 #includesstdio.h> void maino {inta[5]={1,234,5} intb[5]={1,23} intc={12345} static int d 5]: int e5: int 1: for (i=0; 1<5; i++)printf("%d aiD); printf( \n ) for (i=0; i<5; i++) printf("%d",bli) printf("(n ) for(i=0; i<5; i++) printf("%d cliD;printf(\n ) for(i=0;i<5; 1++) printf("%d",dli); printf(\n ) for(i=0; i<5; i++) printf( %d"eli; printf("\n);
数组初始化举例 #include<stdio.h> void main() {int a[5]={1,2,3,4,5}; int b[5]={1,2,3}; int c[]={1,2,3,4,5}; static int d[5]; int e[5]; int i; for (i=0;i<5;i++) printf("%d",a[i]);printf("\n"); for (i=0;i<5;i++) printf("%d",b[i]);printf("\n"); for (i=0;i<5;i++) printf("%d",c[i]);printf("\n"); for (i=0;i<5;i++) printf("%d",d[i]);printf("\n"); for (i=0;i<5;i++) printf("%d",e[i]);printf("\n"); }
举例:61 案例代码文件名:AL61C /功能:从键盘上任意输入n个整数,用冒泡法按从小到大地排序, 并在屏幕上显示出来。 #include stdio. h" #define num10 定义符号常量(数据个数N)/ main lint data NUM /定义1个1维整型数组data/ inti,j, temp 定义循环变量和临时变量”/ clrscror 库函数 cIrsii(:清屏 printf("Pleaseinput 10 numbers: n ) for(i=0; i<NUM; i++) scanf(od",&datai:
举例:{6.1] /*案例代码文件名:AL6_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]);