vb语言 数学题 数字加减问题
建2个文本框,第一个里面输入任意三位数,百位,十位,个位,比如第一个文本里面输入123,那么第二个文本框里要得到的结果是(百位数字1x2+5)+(十位数字2x2+5)+(...
建2个文本框,第一个里面输入任意三位数,百位,十位,个位,比如第一个文本里面输入123 ,那么第二个文本框里要得到的结果是(百位数字1x2+5 )+ (十位数字2x2+5) +(个位数字3x2+5) 这时候可能任意一个位置x2+5的结果可能大于10,甚至大于20,那么我想的结果是只保留个位,第二个文本里得到的结果应该是791。
这是我以123为例来说明问题,如果输入789,那么(百位数字7x2+5 )+ (十位数字8x2+5) +(个位数字9x2+5) 结果就是913. 。
我不会VB语言,简单写了段代码。
If Len(Text1.Text) = 3 Then
a = Val(Mid(Text1.Text, 1, 1) * 2 + 5)
b = Val(Mid(Text1.Text, 2, 1) * 2 + 5)
c = Val(Mid(Text1.Text, 3, 1) * 2 + 5)
If a >= 10 Then
a = a - 10
End If
If a >= 20 Then
a = a - 20
End If
If b >= 10 Then
b = b - 10
End If
If b >= 20 Then
b = b - 20
End If
If c >= 10 Then
c = c - 10
End If
If c >= 20 Then
c = c - 20
End If
Text2.Text = a * 100 + b * 10 + c * 1
End If
出现的问题是如果任意一个位置是8或者9,其结果就错了。原因是大于等于20以后还是减的10,这样结果就成了4位数。大于20的数没做出命令判断,我不知道我的这段程序错在哪里?请高手帮忙改下,或者您有更好,更简单的代码,请写出来。谢谢 展开
这是我以123为例来说明问题,如果输入789,那么(百位数字7x2+5 )+ (十位数字8x2+5) +(个位数字9x2+5) 结果就是913. 。
我不会VB语言,简单写了段代码。
If Len(Text1.Text) = 3 Then
a = Val(Mid(Text1.Text, 1, 1) * 2 + 5)
b = Val(Mid(Text1.Text, 2, 1) * 2 + 5)
c = Val(Mid(Text1.Text, 3, 1) * 2 + 5)
If a >= 10 Then
a = a - 10
End If
If a >= 20 Then
a = a - 20
End If
If b >= 10 Then
b = b - 10
End If
If b >= 20 Then
b = b - 20
End If
If c >= 10 Then
c = c - 10
End If
If c >= 20 Then
c = c - 20
End If
Text2.Text = a * 100 + b * 10 + c * 1
End If
出现的问题是如果任意一个位置是8或者9,其结果就错了。原因是大于等于20以后还是减的10,这样结果就成了4位数。大于20的数没做出命令判断,我不知道我的这段程序错在哪里?请高手帮忙改下,或者您有更好,更简单的代码,请写出来。谢谢 展开
展开全部
应该是大于20先判断,再判断大于10,这样就不会出错。
你这个程序实际上可以写的很简单,里面不要什么IF语句了,直接写成:
Text2.Text=(a mod 10)*100+(b mod 10)*10 +(c mod 10)
a mod 10就是a被10除取余数,结果就是得到个位数。
你这个程序实际上可以写的很简单,里面不要什么IF语句了,直接写成:
Text2.Text=(a mod 10)*100+(b mod 10)*10 +(c mod 10)
a mod 10就是a被10除取余数,结果就是得到个位数。
追问
问题应经解决了。应该是先>20的判断,然后是大于10的。我现在还有一个问题。就是建三个文本文档,一个命令按钮。
第一个文本里输入若干组3位数,比如第一个文本里输入456 567 789 235 278 。。。。,第二个文本里输入比如是6,那么提交命令按钮得到的是里面不包含6的所有数组。并且是从小到大排列,数组中间要用空格区分开。结果像235 278 789.。。。这样。
请问这样的代码怎么写?
追答
你还是把这个问题发到新的提问吧,你这个问题也挺大的,我明天有空再帮你解决。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询