714一维数组应用举例 【例7.1】将10个人的成绩输入计算机后按逆序显示。 #define n 1o #include<stdio.h> void main( f int i; float scoreNe for (i=0; K<N; i++) scanf(%of', &s score: for (i=N-1; i>=0; i--) printf(906.If, score; 运行情况如下: 67748992346783957378 78.073.095083.067.034.092.089.074.067.0 2021-2-24
2021-2-24 11 【例7.1】将10个人的成绩输入计算机后按逆序显示。 #define N 10 #include<stdio.h> void main( ) { int i;float score[N]; for (i=0; i<N; i++) scanf("%f" ,&score[i]); for (i=N-1; i>=0; i--) printf("%6.1f" ,score[i]); } 运行情况如下: 67 74 89 92 34 67 83 95 73 78 78.0 73.0 95.0 83.0 67.0 34.0 92.0 89.0 74.0 67.0
【例72】输入5个整数,找出最大数和最小数12 所在位置,并把二者对调,然后输出 络: ●求最大/小值采用打擂台的方法。 ●定义一维数组a存放被比较的数 ●定义变量max:最大值,min:最小值, k:最大值下标,j:最小值下标。 ●各数依次与擂主进行比较, 若a[i>max则:max=ail 否则判断:若ai-min则:min=ai;ji; ●当所有的数都比较完之后,将ai=max;[k=min; ●输出a数组 2021-2-24
2021-2-24 12 l求最大/小值采用打擂台的方法。 l定义一维数组a存放被比较的数。 l定义变量max:最大值, min:最小值, k:最大值下标 , j:最小值下标 。 l各数依次与擂主进行比较, 若a[i]>max 则: max=a[i]; k=i; 否则判断: 若a[i]<min 则: min=a[i]; j=i; l当所有的数都比较完之后,将a[j]=max; [k]=min; l输出a数组
13 Include<stdio h> void maino) 程序运行情况如下 d int a[5), max, min, ij, k 572314 for(=0;i<5;iH+) 51237 scanf(%d",&aiD; min=a oB max aOB for〔=l;i<5;i++) if (ai<min)( min=ali; j=i; 3 else if (climax) max=; k=i; 3 aj=max; a[k=min; for〔=0;i<5;i++) printf(%5d saiD; printi( n) 2-24
2021-2-24 13 程序运行情况如下: 5 7 2 3 1 5 1 2 3 7
【例73】冒泡法排序(从小到大) 14 以6个数:3、7、5、6、8、0为例。 j=2 j=3 j 5 a a a 2 a 3 35670 如果a[i]>a[i+1] a[i]与a[i+1]交换 (单击继续 a|4 a 5 2021-2-24
2021-2-24 14 3 7 5 6 8 0 3 7 5 6 8 0 3 5 7 6 8 0 3 5 6 7 8 0 3 5 6 7 8 0 3 5 6 7 0 8 j=2 3 5 6 7 0 8 3 5 6 7 0 8 3 5 6 7 0 8 3 5 6 7 0 8 3 5 6 0 7 8 j=3 3 5 6 0 7 8 3 5 6 0 7 8 3 5 6 0 7 8 3 5 0 6 7 8 j=1 j=4 3 5 0 6 7 8 3 5 0 6 7 8 3 0 5 6 7 8 j=5 3 0 5 6 7 8 0 3 5 6 7 8
冒泡法排序(续) 15 j=2 j=3 j=4 j=5 a j控制比较的趟数(外层循环):0 a for(=l; j<N,j ++ a 2 a31控制两两比较的次数(内层循环): al4 for(i=0; i< N-j; i++) a 5 2021-2-24
2021-2-24 15 3 5 6 7 0 8 j=2 3 5 6 0 7 8 j=3 3 5 0 6 7 8 j=1 j=4 3 0 5 6 7 8 j=5 0 3 5 6 7 8 for(j=1;j< ;j++) 两两比较的次数 for (i=0; i< ; i++) N N-j