程序运行后,利用冒泡法对数组a中的数据按从小到大排序。请在空白处填上适当的内容,将程序补充完整
Ptivate Sub Form_load()
Dima(1T05)As Integer,n=5
a(1)=20:a(2)=25:a(3)=10:a(4)=40:a(5)=15
______
Forz=1 To n-m
If a(z)>a(z+1)Then
t=a(z)
a(z)=(z+1)
a(z+1)=t
End If
NextZ
Next
Ptivate Sub Form_load()
Dima(1T05)As Integer,n=5
a(1)=20:a(2)=25:a(3)=10:a(4)=40:a(5)=15
______
Forz=1 To n-m
If a(z)>a(z+1)Then
t=a(z)
a(z)=(z+1)
a(z+1)=t
End If
NextZ
Next
定义一个排序的子程序过程,程序运行后,单击窗体,随机产生0~100之间的10个整数赋给一个一维数组,然后调用此子程序过程将一维数组中的数据按照从大到小的顺序进行排序,最后在窗体上输出排序前及排序后的数。排序采用冒泡法。 改正以下程序中划线语句的错误,在答题时,务必在答题框中写好题号和正确的语句,如下: (1): (2): (3): Option Base 1 Private Sub Form_Load() Dim a(10) As Integer, i% For i = 1 To 10 a(i) = Int(Rnd * 101) Next i Print "排序前:"; For i = 1 To 10 Print a(i); Next i Call sort(a()) Print Print "排序后:"; For i = 1 To 10 Print a(i); Next i End Sub (1) Public Sub sort(b) Dim i%, j%, t% For i = 1 To UBound(b) - 1 (2) For j = i+1 To UBound(b) (3) If b(i) < b(j ) Then t = b(j) b(j) = b(j + 1) b(j + 1) = t End If Next j Next i End Sub
采用冒泡法进行升序排序法的基本原理是:对数组中的n个数执行n-1遍检查操作,在每一遍执行时,对数组中剩余的尚未排好序的元素进行如下操作:对相邻的两个元素进行比较,若排在后面的数小于排在前面的数,则交换其位置,这样每一遍操作中都将参与比较的数中的最大的数沉到数组的底部,经过n-1遍操作后就将全部n个数按从小到大的顺序排好序了。在空白处填写适当的表达式或语句,使程序完整并符合题目要求。 #include <stdio.h> #include <stdio.h> #define N 10 void BubbleSort(int a[], int n); int main() { int i, n, a[N]; printf("Input n:"); scanf("%d", &n); printf("Input %d numbers:", n); for (i=0; i <n; i++) { scanf("%d", &a[i]); } bubblesort(a, n); printf("sorting results:"); for (i="0;" printf("%4d", a[i]); printf("\n"); return 0; * 函数功能:冒泡法实现数组a 的n个元素的升序排序 void bubblesort(int a[], int n) i, j, temp; _______; (j="1;" j++) if (________) temp="a[j];" a[j]="a[j-1];" a[j-1]="temp;"> A、第29行: i <n-1 第31行: 第33行: a[j]> B、第29行: i <n 第31行: 第33行: a[j]> C、第29行: i<=n-1 第31行: 第33行: a[j-1] a[j]> D、第29行: i <n-1 第31行: 第33行: a[i]>
从键盘输入6个待排序的数据存放到数组a中,使用冒泡排序的方法将该数组进行升序排序。main函数中从键盘输入6个数据给数组a,冒泡排序后输出结果到屏幕上。源程序命名为a22.c。 “冒泡法排序”的思想是:依次比较相邻的两个数,将小数放在前面,大数放在后面。 即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将最大的数放到了最后。 在第二趟:仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最大的),第二趟结束,在倒数第二的位置上得到一个新的最大数(其实在整个数列中是第二大的数)。如此下去,重复以上过程,直至最终完成排序。 【测试数据与运行结果】 第一组 请输入6个整数: 输入:78 76 90 5 45 53 输出:升序排序后的数组是: 5 45 53 76 78 90 第二组 请输入6个整数: 输入:8 2 6 7 1 3 输出:升序排序后的数组是: 1 2 3 6 7 8 第三组 请输入6个整数: 输入:5 4 3 2 1 0 输出:升序排序后的数组是: 0 1 2 3 4 5 #include "stdio.h" int main() {int a[128], i, j, n=6,temp; printf("请输入6个整数:\n"); for(i=0; i<n; i++) scanf("%d",&a[i]); 【请在此处完善程序】 for(i="0;" for(j="0;" j++) if (a[j]>a[j+1]) { temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } printf("升序排序后的数组是:\n"); fprintf(fp,"升序排序后的数组是:\n"); for(i=0;i<n;i++) printf("%5d",a[i]);>
下面的程序用“冒泡”法将数组a中的10个整数按升序排列,请在【 】、【 】、【 】处将程序补充完整。
Option Base 1
Private Sub Command1_Click ()
Dim a
a=Array (678, 45, 324, 528, 439, 387, 87, 875, 273,823)
For i=【 】
For j=【 】
If a(i)【 】a(j) Then
a1=a(i)
a(i)=a(j)
a (j) =a1
End If
Next j
Next i
For i=1 To 10
Print a(i)
Next i
End Sub
A.交换两个数的位置
B.将当前数据后移
C.将当前数据前移
D.不做操作
为了保护您的账号安全,请在“简答题”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!