我编的很繁琐,而且错了,出不来,告诉我哪里错了并且给我一个简洁的编程吧
Private Sub Command1_Click()
Dim a As Single, b As Single, c As Single
a = Text1.Text
b = Text2.Text
c = Text3.Text
If a > b > c Then
Text1.Text = a
Text2.Text = b
Text3.Text = c
ElseIf a > c > b Then
Text1.Text = a
Text2.Text = c
Text3.Text = b
ElseIf b > a > c Then
Text1.Text = b
Text2.Text = a
Text3.Text = c
ElseIf b > c > a Then
Text1.Text = b
Text2.Text = c
Text3.Text = a
ElseIf c > a > b Then
Text1.Text = c
Text2.Text = a
Text3.Text = b
ElseIf c > b > a Then
Text1.Text = a
Text2.Text = b
Text3.Text = a
End If
用户的这一行 If a > b > c Then是错误的,任何一门语言都是按照运算符优先级从左至右依次计算得出结果的,显然两个>运算符优先级是相同的,所以从左至右依次算。
可以参考以下代码:
Dim a As Single, b As Single, c As Single
a = Text1.Text
b = Text2.Text
c = Text3.Text
'无外乎就六种情况
'a>b>c
'a>c>b
'b>a>c
'b>c>a
'c>a>b
'c>b>a
If a > b And b > c Then 'a比b大,且b比c大
Text1.Text = c
Text2.Text = b
Text3.Text = a
ElseIf a > c And c > b Then 'a比c大,且c比b大
Text1.Text = b
Text2.Text = c
Text3.Text = a
'下面可以参照以上函数
End If
扩展资料:
VB常用函数
1、Time
返回系统时钟的当前时间
2、Date
返回系统时钟的当前日期
3、Now
返回代表当前日期和时间的编码值,该函数经常用作其它系统时钟函数的参数
4、Hour(Time)
返回指定时间的小时部分(0到23)
5、Minute(Time)
返回指定时间的分钟部分(0到59)
6、Second(Time)
返回指定时间的秒部分(0到59)
7、Day(Date)
返回月份中的日期数(1到31)
8、Month(Date)
返回日期中的月份(1到12)
9、Year(Date)
返回日期中的年度
10、Weekday(Date)
返回日期中代表一周中的星期几
参考资料来源:百度百科-Visual Basic
解释一下为什么错了吧!
看这一行 If a > b > c Then。
任何一门语言都是按照运算符优先级从左至右依次计算得出结果的。
显然两个 > 运算符优先级是相同的,所以从左至右依次算。
先算 a > b,如果 a 真的比 b 大,那么得出结果 True;否则得出 False。
再算 True/False > c,一个是布尔值,一个是单精度浮点,当然不能比较。
就好像算 3 + 4 + 5,是先算 3 + 4 = 7,再算 7 + 5 = 12 一样,计算机很笨的,只能依次运算。
Dim a As Single, b As Single, c As Single
P.S. 楼下的利用了中间变量 t,通过冒泡排序来进行的运算,也很简单。
任何程序设计语言都没有类似 a > b > c 这样的表达式的,必须拆分为两部分: a > b And b > c
你的代码可以简化为:
Private Sub Command1_Click()看不懂teval和:。。。。
追答val 是将文本转换成数字
判断大小只要这样3句就ok
原则:a放最小数
If a > b Then t=b:b=a:a=t a大于b,就a b交换, a就是小的值,b是大的值,t是过渡数
If a > c Then t=c:c=a:a=t 如果 a值还是大于c,那么c最小,把他换给a,a最小
If b > c Then t=c:c=b:b=t 经过2个交换b c都是大数,在比较他们大小,大的给c,b第二大
vb任意输入3个整数,按照由小到大排序输出。
用户的这一行 If a > b > c Then是错误的,任何一门语言都是按照运算符优先级从左至右依次计算得出结果的,显然两个>运算符优先级是相同的,所以从左至右依次算。可以参考以下代码:Dim a As Single, b As Single, c As Single a = Text1.Text b = Text2.Text c = Text3.Text '无...
vb任意输入3个整数,按照由小到大排序输出。
end sub
vb编程,任意输入3个整数,按照由小到大排序输出.(代码纠错)
解决办法就是:将声明语句放在变量使用之前。改成这样:Dim a, b, c As Integer a = Text1.Text b = Text2.Text c = Text3.Text d = Text4.Text 2、末尾的“d = Text4.Text”,应该是你将赋值方向搞反了,本来是要输出的,却变成了“输入”。3、其中的一些判断,发生了混乱。根据以上...
vb编程,任意输入3个整数,按照由小到大排序输出.(代码纠错)
如果你的代码没有强制声明变量,那么,去掉 Dim a, b, c As Integer 如果有,改成 Dim a, b, c As Integer Dim d As String a = CInt(Text1.Text)b = CInt(Text2.Text)c = CInt(Text3.Text)猜你是想显示排序的结果 d="c,b,a"应该改成 d=c1 & "," & b1 & "," & a1 ...
VB编程题 输入xyz三个数,按从小到大的次序显示
源程序如下:1. 利用InputBoxb函数输入3个数,存放到数值型变量中,然后对其进行比较。2. 对三个数进行排序,只能通过两两对比,一般可用三条单分支IF语句来实现。3 .要显示多个数据,可以用“;”逐一显示,也可利用“&”字符串连接将多个变量连接显示。解题:先在窗体上画一个按钮,代码如下:Priva...
用VB编写一个程序, 输入a、b、c三个数,要求按由大到小的顺序显示...
Private Sub Command1_Click()x = InputBox("输入第一个数")y = InputBox("输入第二个数")z = InputBox("输入第三个数")If x < y Then t = x: x = y: y = t If x < z Then t = x: x = z: z = t If y < z Then t = y: y = z: z = t Print x, y, z...
用VB编写一个程序, 输入a、b、c三个数,要求按由大到小的顺序显示
Private Sub Form_Click()Dim A(1 To 3), I, J, X As Integer For I = 1 To 3 A(I) = Val(InputBox("请输入数字"))Next I For I = 1 To 2 For J = I + 1 To 3 If A(I) < A(J) Then X = A(I)A(I) = A(J)A(J) = X End If Next J Next I For I =...
在VB中怎样区分和使用integer\\long\\single\\double\\string等?
例如:123456,45678&都是长整数型。2、实数型(浮点数或实型数)实数型数据是指带有小数部分的数。注意:数12和数12.0对计算机来说是不同的,前者是整数(占2个字节),后者是浮点数(占4个字节)实数型数据分为浮点数和定点数。浮点数由三部分组成:符号,指数和尾数。在VB中浮点数分为两种:...
使用vb对输入的三个数字由大到小进行排序?
= c Then Print "输入数据无法运算,请重新输入"GoToi End If If a < b Then x = b If x < c Then x = c y = b z = a End If Else x = a If b > c Then y = b z = c Else y = c z = b End If End If Print "自大至小排序为:"; x, y, z End Sub ...
VB程序设计题:任意三个数ABC,将其按由大到小的顺序显示出来
'假设要比较的三个数输入在Text1,text2,text3,结果放在text4 Private Sub Command1_Click()Dim a, b, c, d As Double a = Val(Text1.Text)b = Val(Text2.Text)c = Val(Text3.Text)If a < b Then d = a: a = b: b = d If b < c Then d = b: b = c: c = d ...