[VB]输入一个合法的3位正整数,测试其数值合法性后,逆序输出并显示,例如,输入"734",输出是"437",如图1所示

要求:(1)利用Text1_LostFocus事件,输入数据合法性检查调用IsNumeric函数;若有错利用MsgBox显示出错信息,如图2所示;清除文本框内输入的非法数据,通过SetFocus定位于文本框处,重新输入。
(2)利用“MOD”和“\”运算符将一个3位数分离出3个1位数,然后利用乘法和加法运算将3个1位数连接成一个逆序的3位数。

假如:输入数字的 TextBox 控件名称为 txtNum1,输出用 TextBox 的名称为 txtNum2

1、判断 txtNum1 是否为数字的程序如下
If Trim(txtNum1) = "" Then Exit Sub
If Not IsNumeric(txtNum1) Then
MsgBox "请输入数字!"
txtNum1.SetFocus
End If

2、实现逆序的程序如下
Dim maxNum As Long
Dim i As Long

Dim strN1 As String
Dim strN2 As String

maxNum = Len(Trim(txtNum1))
strN1 = Str(Trim(txtNum1))
For i = maxNum + 1 To 2 Step -1
strN2 = strN2 + Mid$(strN1, i, 1)
Next
txtNum2 = strN2
在实现“逆序”程序中,我是把输入内容按字符串进行处理的,原因主要是
(1)、不知道输入数字长度的大小,
(2)、如果数字最后一位是0的话,也能明确看到结果。

3、如果你确定输入是三位数字的话,直接转换:
txtNum2 = (txtNum1 Mod 10) * 100 + ((txtNum1 Mod 100) \ 10) * 10 + (txtNum1 \ 100)

希望对你有参考价值...
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-04-27
(1)if keycode=13 then
if isnumeric(text1.text)=true then

if val(text1.text)<100 or val(text1.text)>999 then

msgbox "你输入的整数不合法 100-999"

exit sub

else

msgbox "输入合法"

end if

end if
(2)
Private Sub Command1_Click()
Dim a As Integer, b As Integer, c As Integer
Dim i As Integer, j As String
i = 100 + Int(Rnd * 900)
a = Int(i / 100)
b = i Mod 100
c = b Mod 10
b = Int(b / 10)
j = c & b & a
MsgBox i & "," & j

End Sub本回答被提问者和网友采纳

...逆序输出并显示,例如,输入"734",输出是"437",如图1所示
假如:输入数字的 TextBox 控件名称为 txtNum1,输出用 TextBox 的名称为 txtNum2 1、判断 txtNum1 是否为数字的程序如下 If Trim(txtNum1) = "" Then Exit Sub If Not IsNumeric(txtNum1) Then MsgBox "请输入数字!"txtNum1.SetFocus End If 2、实现逆序的程序如下 Dim maxNum As Long...

VB编程:输入一合法的3位正整数,先后逆序输出并显示。如:输入“128...
1) If IsNumeric(s) = True Then s = StrReverse(s) MsgBox s '或者 ActiveSheet.Cells(1, 1)= s Else MsgBox "Is not Numeric" End IfEnd Sub

vb程序设计:随机产生一个三位正整数,然后逆序输出该数,产生的数与逆序...
数字逆序法:Private Sub Form_Click()Dim x As IntegerDim n1 As Integer, n2 As Integer, n3 As IntegerRandomizex = Int(Rnd * 900) + 100n1 = x \\ 100n2 = (x Mod 100) \\ 10n3 = x Mod 10Print x, n3 * 100 + n2 * 10 + n1End Sub字符串逆序法:Private Sub Form_Click...

VB 产生一个3位数,然后按逆序输出的程序
Print "产生的数是:"; a Print "反转后的树是:"; b End Sub

VB中从键盘输入一个正整数,然后把该数的每位数字按逆序输出
Print x, y’这里就是指输入外部变量x,y End Sub Private Sub sub1(ByVal m As Integer, n As Integer)'这里有个注意点:m和n的传递方式不同,简单说来就是call sub1(a,b)中a的值传给m,之后m的改变不会影响a,两者独立改变值,而b的值传给n后,n的值改变会影响b,也就是最后print a...

怎样随机产生3位正整数,然后逆序输出,产生的随机数与逆序数同时显示。例...
program fdsl;var n,a,b,c:integer;begin randomize;n:=random(999);writeln(n);a:=n mod 10;b:=(n mod 100) div 10;c:=n div 100;write(a,b,c);writeln;end.div 是整除

用vb编写程序,把输入的数据逆序显示,如输入4321,输出1234
private sub form_click()cls dim i as integer,m as integer,n as integer,k as integer m=int(inpurbox(“输入一个整数”;“m=”;1234)print “原数=”;m n=0 do while(m>0)k=m mod 10 m=m\\10 n=n*10+k loop print “逆序数=”;n end sub ...

vb输入一个字符串 并将它逆序输出
Option Explicit Private Sub Command1_Click()Dim InS As String, S As String, T As String Dim I As Integer, J As Integer, L As String Dim C() As String, X As String InS = InputBox("请输入字符串", "", "1Ae4ui95487KuywY1Z2Faz")f InS = "" Then Exit Sub J =...

输入一个数,将这个数逆序后输出,如:输入123,输出321
i=InputBox(”输入一个数”)a=int(i\/100)b=int((i mod 100)\/10)c=i mod 10 k=100*c+10*b+a print k

如何编写一个例如输入一个三位数123使其输出结果是321的程序
\/\/补齐最后一位数 return result;}void reverses(char *s, char *r) \/\/将字符串s逆序后存入字符串r {int i = strlen(s)-1, j = 0;while(i>=0){r[j++] = s[i--];}}int main(){int di;char ds[10],re[10];printf("请输入一个整数:");scanf("%d", &di);printf("整数...

相似回答