C语言对数组的初始赋值的几点规定: 3.当{}中值的个数多于元素个数时,系统出错。 4.只能给元素逐个赋值,不能给数组整体赋值。 例如给十个元素全部赋0值,只能写为: inta[10}={0,0,0,0,0,0,0,0,0,0} 或者inta[10}={0}; 而不能写为:inta10=0;×
11 3. 当{ }中值的个数多于元素个数时,系统出错。 4. 只能给元素逐个赋值,不能给数组整体赋值。 例如给十个元素全部赋0值,只能写为: int a[10]={0,0,0,0,0,0,0,0,0,0}; 或者 int a[10]={0}; 而不能写为:int a[10]=0;× C语言对数组的初始赋值的几点规定:
维数组程序举例 从键盘上任意输入10个整数,要求按从小到大输出。 冒泡法排序的算法思想 (将相邻两个数比较,小的调到前头) 1)有m个数(存放在数组a|m中),第一趟将每相邻两 个数比较,小的调到前头,经n-1次两两相邻比较后, 最大的数已“沉底”,放在最后一个位置,小数上升 “浮起”; 2)第二趟对余下的n-1个数(最大的数已“沉底”) 按上法比较,经n-2次两两相邻比较后得次大的数 3)依次类推,n个数共进行n-1趟比较,在第j趟中要 进行n-j次两两比较
12 冒泡法排序的算法思想: (将相邻两个数比较,小的调到前头) 1)有n个数(存放在数组a[n]中),第一趟将每相邻两 个数比较,小的调到前头,经n-1次两两相邻比较后, 最大的数已“沉底” ,放在最后一个位置,小数上升 “浮起” ; 2)第二趟对余下的n-1个数(最大的数已“沉底”) 按上法比较,经n-2次两两相邻比较后得次大的数; 3)依次类推,n个数共进行n-1趟比较,在第j趟中要 进行n-j次两两比较。 一维数组程序举例 从键盘上任意输入10个整数,要求按从小到大输出
输入n个数据给到0 原始数据 869327 第1趟交换后689327 For =1 to n-1 第2趟交换后689237 第3趟交换后682937 ForF1ton-1 第4趟交换后682397 4j)>(+1) 第5趟无交换682379 一次冒泡过程 交换)和付+ 打印输出2()到利b
13 原始数据 8 6 9 3 2 7 第1趟交换后 6 8 9 3 2 7 第2趟交换后 6 8 9 2 3 7 第3趟交换后 6 8 2 9 3 7 第4趟交换后 6 8 2 3 9 7 第5趟无交换 6 8 2 3 7 9 一次冒泡过程
冒泡法排序 main int i,j, temp, data[lll; printf("Please input 10 numbers: n"); for(i=l; i<ll; i++) scanf(%d", &datain for(i=1;i<=9;i++) 外循环:控制比较趟数 for(j=1;j=10-i;j+)内循环:进行每趙比较* if(datai>data j+ID temp=dataljl: datajl=data[j+1]; data[j+1=temp; 1 for(i=l; i<ll; i++) printf("ood",datai;
14 冒泡法排序 main() { int i,j,temp,data[11]; printf("Please input 10 numbers:\n"); for(i=1; i<11; i++) scanf("%d", &data[i]); for(i=1; i<=9; i++) /*外循环:控制比较趟数*/ for(j=1; j<=10-i; j++) /*内循环:进行每趟比较*/ if(data[j]>data[j+1]) {temp=data[j]; data[j]=data[j+1]; data[j+1]=temp;}; for(i=1; i<11; i++) printf("%d ",data[i]); }
选择法排序 选择法排序的算法思想: 1)对有n个数的序列(存放在数组a(n)中),从中 选出最小(升序)或最大(降序)的数,与第1个数交 换位置; 2)除第1个数外,其余n-1个数中选最小或最大的 数,与第2个数交换位置; 3)依次类推,选择了n-1次后,这个数列已按升序 排列
15 选择法排序的算法思想: 1)对有n个数的序列(存放在数组a(n)中),从中 选出最小(升序)或最大(降序)的数,与第1个数交 换位置; 2)除第1 个数外,其余n-1个数中选最小或最大的 数,与第2个数交换位置; 3)依次类推,选择了n-1次后,这个数列已按升序 排列。 选择法排序