一维数组的初始化方式有以下几种: (1)全部元素初始化: 在对数组的所有元素 char a3]={1,2,'n'} 赋初值时,可以不指 定数组长度。系统自 intb[5]={2,11,3,14,5}; 动定义其长度为5 intb[J={2,11,3,14,5}; 初值个数不能超过 intb[4={2,11,3,14,5}; 数组长度。否则, 会出现语法错误
一维数组的初始化方式有以下几种: (1)全部元素初始化: char a[3] = {‘1’, ‘2’,’ \n’}; int b[5] = {2,11,3,14,5}; int b[ ] = {2,11,3,14,5}; int b[4] = {2,11,3,14,5}; 在对数组的所有元素 赋初值时,可以不指 定数组长度。系统自 动定义其长度为5 初值个数不能超过 数组长度。否则, 会出现语法错误
(2)部分元素初始化: 将a[0]-a[1]依次初始 inta10]={0,1,2: 化为’0、’1'。未赋 值的元素a[2]~a[9]值 char a10]={0',1}; 全部被初始化为char 中表示假的值’10。 (3)全部元素初始化为0: inta10={0}; 若想全部初始化为1 inta[10]=(1;错误
(2)部分元素初始化: int a[10] = {0,1,2}; char a[10]={‘0’, ‘1’}; (3)全部元素初始化为0: int a[10]={0}; 将a[0]~a[2]依次初始 化为0、1、2。未赋值 的元素a[3]~a[9]值全 部被初始化为int中表 示假的值0。 将元素a[0]~a[9] 全 部初始化为0 将a[0]~a[1]依次初始 化为’0’、’1’。未赋 值的元素a[2]~a[9]值 全部被初始化为char 中表示假的值’\0’ 。 若想全部初始化为1 int a[10]={1}; 错误
【例4.5】定义一个含有10个元素的整型一维数组 并全部初始化,将数组中所有元素逆序输出。 #include <stdio.h> int main( int i; inta[10]={1,2,3,4,5,11,12,13,14,15}: for(i=9;i>=0;i-) 1依次输出a[9]~a[0]的值1 printf("%d ",a[i]); printf("\n"); return 8; 151413121154321
【例 4.5】定义一个含有10个元素的整型一维数组 并全部初始化,将数组中所有元素逆序输出
【例4.6】:用冒泡法对5个数排序。 解:冒泡排序过程如后面图所示,其中,红圈以 内为已 规则: 若上面 的数大
【例4.6】 :用冒泡法对5个数排序。 解:冒泡排序过程如后面图所示,其中,红圈以 内为已排好序的记录。 规则:令相邻位置的数依次比较,若上面 的数大,则交换
冒泡算法逻辑过程 第0趟 第1趟 第2趟 第3趟 4>1 RIJ 1<3 1<3 交换 不交换 不交换 父换 第0次4 4>3 3<4 3>2 第1次1 交换 不交换3 交换 第2次3 3 4<5 不交换 第3闪5 5 4 5 for(i=0;i<4;i++) ∥外循环 如果(R[]的值>R[+1]的值)则交换增1 for00;4-ijt+)∥内循环 如果(R[订的值<R[+1]的值)则不交换增1
4 1 4 1 3 5 2 4>1 交换 4>3 交换 3 4<5 不交换 5 2 5>2 交换 1 1<3 不交换 3 4 3<4 不交换 2 4>2 交换 5 1 3 2 4 5 1<3 不交换 3>2 交换 1 2 3 4 5 1<2 不交换 结果 1 2 3 4 5 R[ ] 第0趟 第1趟 第2趟 第3趟 第0次 第1次 第2次 第3次 for(i=0;i<4;i++) // 外循环 如果( R[j]的值>R[j+1] 的值)则交换 j增1 for(j=0;j<4−i;j++)// 内循环 如果( R[j]的值<R[j+1]的值 ) 则不交换 j增1 冒泡算法逻辑过程 i j