VB 绝对是个高手挑战题目.求代码

VB 绝对是个高手挑战题目.求代码
有TEXT1-7,7个数值,其中TEXT1-6的数值可能会是0-20之间的数*30%,TEXT7的数值为常数.现有以下要求:
1、先判断TEXT1-6中,有哪些Text.text不等于0的,不等于0的数有多少个(How1);
2、再判断How1*30%是否>100%;如果大于100%的,判断不等于0的数值的大小.取最小数(min1)乘以text7,得数为ds1.
3、TEXT1-6中不等于0的数分别减去上述的最小数(min1)后,再判断不等于0的数有多少个(How2);再判断How2*30%是否>100%;如果大于100%的,判断不等于0的数值的大小.取最小数(min2)乘以text7,得数为ds2.
4、如果How*30%
zl200718 1年前 已收到1个回答 举报

CjPee88 幼苗

共回答了8个问题采纳率:100% 举报

看了半天,不容易懂,这一句:
第二条,“再判断How1*30%是否>100%;如果大于100%的,判断不等于0的数值的大小.取最小数(min1)乘以text7,得数为ds1” ,那么如果小于100%,怎么办?ds1不是没数值吗?
同理,ds2也可能没数值.
第四条,“如果How*30%

1年前 追问

2

zl200718 举报

步骤1-5是连在一起的。如果小于100%那么就运行第四条,HOW 也就是运行到哪里判断<100%就停止。

举报 CjPee88

第四条是ds3了,对于第二条来说,如果小于100%,ds1=?

zl200718 举报

如果小于100%,将运行不等于0的数分别乘以30%再乘以text7,然后得出ds 这是一个循环判断。先判断是不是超过100%(HOW代表的是非0的个数),如果超过就取最小那个数乘以text7后,全部数减最小的那个数后,再一次判断是不是超过100%,如果没超过的话,不等于0的数分别乘以30%再乘以text7后,再相加,得出一个总数,总数再加上前面(超过就取最小那个数乘以text7的得数)。

举报 CjPee88

Private Sub Command1_Click() Dim a(7), how1, min1 a(1) = Val(Text1.Text) a(2) = Val(Text2.Text) a(3) = Val(Text3.Text) a(4) = Val(Text4.Text) a(5) = Val(Text5.Text) a(6) = Val(Text6.Text) a(7) = Val(Text7.Text) For i = 1 To 6 If a(i) <> 0 Then how1 = how1 + 1 'how1=不等于0的数的个数 If i = 1 Then min1 = a(1) Else If min1 > a(i) Then min1 = a(i) '取最小值 Next If how1 * 0.3 > 1 Then ds1 = min1 * a(7) End If Next '后面实在看不懂你的描述,你可以自己添加代码 End Sub
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 17 q. 0.023 s. - webmaster@yulucn.com