问答题
使用VC6打开考生文件夹下的源程序文件modi2.cpp。阅读下列函数说明和代码,完成空出部分的程序。实现函数sort(intA[],int n),用冒泡法将数组排序。 提示:所谓冒泡法,就是每次把相邻的两个数交换,较大的数交换到后面。这样下标从0到n-1的数与其后面相邻的数交换,可以把最大的数交换到数组的末端。进行n次下标从0到n-1的交换,则数组则会变成有序的,而且是由大到小的顺序。 注意:不能修改程序的其他部分,并且不能删除其他的部分,也不能修改程序的结构。#include<iostream.h>#define N 10void sort(int A[N],int n){}int main(){ int A[N]={5,7,4,6,i0,13,78,一4,9,2 0); Sort(A,10); for(int i=0;i<sizeof(A)/Sizeof(int),i++) { cout<<A[i]<<‘’; } cout<<end1; return 0;}
【正确答案】正确答案:int i t j,k,t; for(i=0;i<n一1;i++) { for(k=i,J=i+1;J<n;J++) if(A[k]<A[j])//如果前面的 比后面的小则需要交换 k=j; if(k!=i) //交换 { t=A[i]; A[i]=A[k]; A[k]=t; } }
【答案解析】解析:函数sort(int A[],int n)用冒泡排序法把数组进行从大到小的排序,冒泡法排序利用了求数组中最小值及其位置的算法,首先从n个数中找出最大值,放在第一个元素位置上,再从剩下的n-1个数中找出最大值,放在第二个元素位置上,这样不断重复下去,直到剩下最后一个数。