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、持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)