2012-10-30 14:58_毛线线 | 分类:VB | 浏览19次
数学的解答思路:要对a、b、c这三个数排序(依顺序为例),先比较前两个数,使得a≤b,再比较b与c,若b≤c,则排序已完成,否则需要交换b与c的值,之后再继续比较a与交换后的b,使得a小于等于b,排序结束。
求高手帮忙写下这个程序。
这里有两种方法。第一种,直接交换,代码比较多,容易出错。
第二种,把交换部分写成一个独立过程,中间调用。便于阅读,书写方便,不易出错。
用户的关于从大到小和从小到大排序选择,使用Option控件()如图。
Private Sub Command1_Click()
Dim a As Integer
Dim b As Integer
Dim c As Integer
Dim tmp As Integer
a = Val(Text1.Text)
b = Val(Text2.Text)
c = Val(Text3.Text)
If Option1.Value = True Then
If a < b Then
tmp = a
a = b
b = tmp
End If
If c > a Then
tmp = b
b = c
c = tmp
tmp = a
a = b
b = tmp
ElseIf c > b Then
tmp = b
b = c
c = tmp
End If
Else
If a > b Then
tmp = a
a = b
b = tmp
End If
If c < a Then
tmp = b
b = c
c = tmp
tmp = a
a = b
b = tmp
ElseIf c < b Then
tmp = b
b = c
c = tmp
End If
End If
Text1.Text = CStr(a)
Text2.Text = CStr(b)
Text3.Text = CStr(c)
End Sub
Sub swap(x, y)
Dim tmp
tmp = x
x = y
y = tmp
End Sub
Private Sub Command2_Click()
Dim a As Integer
Dim b As Integer
Dim c As Integer
Dim tmp As Integer
a = Val(Text1.Text)
b = Val(Text2.Text)
c = Val(Text3.Text)
If Option1.Value = True Then
If a < b Then
End If
If c > a Then
swap b, c
swap a, b
ElseIf c > b Then
swap b, c
End If
Else
If a > b Then
swap a, b
End If
If c < a Then
swap b, c
swap a, b
ElseIf c < b Then
swap b, c
End If
End If
Text1.Text = CStr(a)
Text2.Text = CStr(b)
Text3.Text = CStr(c)
End Sub
你看看例子:
VB编程题 输入xyz三个数,按从小到大的次序显示
源程序如下:1. 利用InputBoxb函数输入3个数,存放到数值型变量中,然后对其进行比较。2. 对三个数进行排序,只能通过两两对比,一般可用三条单分支IF语句来实现。3 .要显示多个数据,可以用“;”逐一显示,也可利用“&”字符串连接将多个变量连接显示。解题:先在窗体上画一个按钮,代码如下:Priva...
VB的:输入三个数X、Y、Z,按从小到大的顺序输出这三个数
THEN 后面直接换行!(或加冒号 : )你的程序太乱!题目中是X、Y、Z,程序中是a、b、c,一会儿又有m、n 这样写:Private Sub Command1_Click()X = Text1.Text: Y = Text2.Text: Z = Text3.Text If X>Y Then m = X : X = Y : Y = m If X>Z Then m = X : X = Z :...
VB 三个数如何排序
Dim i%, j%, d Print "原先的3个数是:"For i = 1 To 3 a(i) = Val(InputBox("请输入第" & i & "个数的值:"))Print a(i),Next i Print '打印完换行 Print "从大到小排序为:"For i = 1 To 2 For j = 2 To 3 If a(j) > a(i) Then d = a(i)a(i) = ...
VB6.0三个数排序完全代码
s = "输入的三个数为:" & a & ", " & b & ", " & c & vbCrLf If a > b Then t = a: a = b: b = t If a > c Then t = a: a = c: c = t If b > c Then t = b: b = c: c = t MsgBox s & "三个数从小到大为:" & a & ", " & b & ",...
一道VB程序填空题(判断三个数中最小的数)
编写程序以解决以下问题:获取三个数并找出其中最小的那个数。定义四个变量,分别用于存储输入的三个数以及比较结果:使用 InputBox 函数从用户接收输入,将输入转换为单精度浮点数并存储到变量 a, b 和 c 中。创建一个字符串变量 strtemp,用于存储最终输出结果。初始化为三个数的值,以逗号分隔。在...
用VB排列列表框的数组(从小到大排列)
lstUnsorted.Clear ' 将列表框置空 Randomize ' 随机生成MAXPLAYER 个无序元素 For i = 1 To MAXPLAYER ' 产生随机数,乘以10 后进行四舍五入,结果保留2 位小数 sngElement = Round((Rnd() * 10), 2)' 将产生的随机数添加到列表框中 lstUnsorted.AddItem sngElement Next ' 设置插入排序...
VB排序问题
排序有很多种方法 1.冒泡法;2.定位交换法;3.直接插入排序法;4.选择法;这是常见的。第一趟将每相邻两个数比较,小的调到前头,经n-1次两两相邻比较后,最大的数已“沉底”,放在最后一个位置,小数上升“浮起”;第二趟对余下的n-1个数(最大的数已“沉底”)按上法比较,经n-2次两...
VB数组从小到大排序
这排序没有什么大的问题。如果b()数组中已有n个元素的话,可以成功完成升序的排序。只是程序的效率不够高。当n很大时花时太多。For i = 0 To n - 2 For j = i + 1 To n - 1 '这里可以从 i + 1 开始 If b(i) > b(j) Then t = b(i)b(i) = b(j)b(j) = t End ...
VB中,随机产生10个0~100之间的随机数,按从小到大的顺序排列怎么做...
可用冒泡排序法:代码如下:'不重复随机数排序'添加 Command1 Command2 Command3Option Explicit Dim i&, j&, k&, t&, Trec&, Arr&(), RndVal&, TmpVal&, S Private Sub Form_Load()Command1.Caption = "选随机数"Command2.Caption = "小到大排序"Command3.Caption = "大到小排序"'*...
...输入框输入10个不同的整数,将它们从小到大排序,并打印输出
给你思路!利用数组存储这10个数!然后用冒泡排序 、选择排序等进行排序!最后print 一下!