请教vb考试题 :下面的程序使用冒泡法将数组a中的十个整数按升序排列,

请教vb考试题 :下面的程序使用冒泡法将数组a中的十个整数按升序排列,,第1张

Private Sub command1_click()

Dim a

Dim tmp As Integer

a = Array(678.45, 324, 528, 439, 387, 87, 875, 273, 823, 678) '给数组赋值

For i = 0 To 9

For j = 0 To 9

If a(i) <a(j) Then ' 两个数比较大小 如果 后者大于前者 则交换两个数

tmp = a(i) ' 交换两个数

a(i) = a(j) ' 同上

a(j) = tmp ' 同上 以上三步 是交换数据 “空瓶子法”

End If

Next j

Next i

For i = 0 To 9 ' 循环输出所有数据

Print a(i) '

Next i

End Sub

依次填——

i=0i<10i++

j=0j<9j++

x[j]<x[j+1]

x[j]=x[j+1] ——s=x[f]有错,应该是s=x[j]才对。

x[j+1]=s

代码另有3处错误:

printf('输入10个整数:\n")应改为printf("输入10个整数:\n")。

scanf("%d"&x[i])应改为scanf("%d",&x[i])。

printf('%d",x[i])应改为printf("%d ",x[i])。

采用冒泡法降序排列10个输入数据的程序如下:

先定义一个长度为10的数组a[],10个数据由键盘输入,从第一个数开始,两两一组进行判断,因为要求是降序排列,因此将两个数中小的向后移动,每个数要比较的次数为9-数的下标。比较完成后将数组依次输出。

输入10个数据,程序运行结果:

扩展资料:

冒泡排序算法的原理如下:

1、比较相邻的元素。如果第一个比第二个大,就交换他们两个。

2、对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。

3、针对所有的元素重复以上的步骤,除了最后一个。

4、持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11170209.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存