#include<stdio.h>#include<stdlib.h>补充例3的程序代码#include<time.h>voidmainOchar ch[20],k;srand((unsigned)time(NULL))printf(显示随机产生的20个大写英文字母:/n");for(k=0;k<20;k++)ch[k]=rand0%(Z'-'A+1)+'A';printf("%c",ch[k]);人printf("\n按要求显示:\n")for(k=0;k<20:k++)if(ch[k]=='A'|ch[k]=='E'||ch[k]=='I'||ch[k]=='O'||ch[k]=='U")printf("*");elseprintf("%c"ch[k])if((k+1)%10==0)printf("\n");力
#include<stdio.h> #include<stdlib.h> #include<time.h> void main() { char ch[20],k; srand((unsigned)time(NULL)); printf("显示随机产生的20个大写英文字母:\n"); for(k=0;k<20;k++) { ch[k]=rand()%('Z'-'A'+1)+'A'; printf("%c",ch[k]); } printf("\n按要求显示:\n"); for(k=0;k<20;k++) if(ch[k]=='A'||ch[k]=='E'||ch[k]=='I'||ch[k]=='O'||ch[k]=='U') printf("* "); else printf("%c ",ch[k]); if((k+1)%10==0) printf("\n"); } } 补充例3的程序代码
排序对数据信息进行的很多处理手段都是以排序作为基础的排序即是按照数据值的升序或降序进行排列的过程。最基本的排序算法:冒泡排序选择排序
排序 ◼ 对数据信息进行的很多处理手段都是以排序 作为基础的。 ◼ 排序即是按照数据值的升序或降序进行排列 的过程。 ◼ 最基本的排序算法: ❑ 冒泡排序 ❑ 选择排序
【例8-4】用冒泡法对输入的10个数进行由小到大排序冒泡法排序的思路:比较相邻两个数,如果前面的数大于后面的数,则进行交换,即较小的数调到前面,依此类推,第一轮比较完将最大的数调到最后,即最大数沉底。然后下一轮比较将第二大的数调到后面第二个位置上,依次n个数需要n-1轮比较,最后得到升序排列
【例8-4】用冒泡法对输入的10个数进行由小到大排序。 冒泡法排序的思路: 比较相邻两个数,如果前面的数大于后面的数, 则进行交换,即较小的数调到前面,依此类推, 第一轮比较完将最大的数调到最后,即最大数沉 底。 然后下一轮比较将第二大的数调到后面第二个位 置上,依次n个数需要n-1轮比较,最后得到升序 排列
87101211x[0]x[4]|x[5]x[1]x[2]x[3]6个数8711121087101511128111012781071211711108151281071211812711101581078710151211811107781081215111078117107810810127151187101187101211157887101178k: 1~5外循环x[m]>x[m+1] 成立交换x[m]x[m+1]m: 0~4, 0~3,0~2, 0~1,0tfor(k=1;k<=5;k++)t=x[m]for(m=0; m<=5-k; m++)x[m]=x[m+1]if(x[m]>x[m+1])x[m+1]=t交换
x[0] x[1] x[2] x[3] x[4] x[5] 10 8 15 12 7 11 10 8 15 12 7 11 8 10 15 12 7 11 8 10 15 12 7 11 8 10 12 15 7 11 8 10 12 7 15 11 8 10 12 7 11 15 8 10 12 7 11 8 10 12 7 11 8 10 12 7 11 8 10 7 12 11 8 10 7 11 12 for (k=1;k<=5;k++) for(m=0; m<=5-k; m++) if(x[m]>x[m+1]) 交换 x[m] t x[m+1] t=x[m] x[m]=x[m+1] x[m+1]=t 8 10 7 11 8 10 7 11 8 7 10 11 8 7 10 11 8 7 10 7 8 10 7 8 10 7 8 k: 1~5 外循环 7 8 m: 0~4, 0~3,0~2, 0~1,0 6个数 x[m]>x[m+1] 成立 交换
input10numbers:#include<stdio.h>5 8 9 11.19 18 14 23 16#defineNUM 10The sorted numbers:589111416181923void main(){int k,m,t,x[NUM]printf("In input 10 numbers:In");for(k=0;k<NUM;k++)scanf("%d",&x[k]);for (k=1;k<NUM;k++)for(m=0;m<NUM-k;m++)if(x[m]>x[m+1]) t=x[m];x[m]=x[m+1]; x[m+1]=t; printf("Thesortednumbers:In");for (k=0;k<NUM;k++) printf("%d ",x[k]);printf("\n");
#include <stdio.h> #define NUM 10 void main() { int k,m,t,x[NUM]; printf("\n input 10 numbers:\n"); for(k=0;k<NUM;k++) scanf("%d",&x[k]); for (k=1;k<NUM;k++) for(m=0;m<NUM-k;m++) if(x[m]>x[m+1]) { t=x[m]; x[m]=x[m+1]; x[m+1]=t; } printf("The sorted numbers :\n"); for (k=0;k<NUM;k++) printf("%d ",x[k]); printf("\n"); } input 10 numbers: 5 8 9 11 19 18 14 23 16 The sorted numbers : 5 8 9 11 14 16 18 19 23