定义a为双精度数组,dim a() as double,数组长度为3,(其实a存储的就是一个三维向量)。
a中的元素有如下三种类型:
第一种:假定a={"-1", "0", "0"}或者a={"0", "1", "0"},就是说,a中的元素有两个0,一个1或-1;
第二种:假定a={"0.12", "0.98", "0"}或者a={"0", "0.47", "1.38"},就是说,a中除了有一个0外,另外两个数不为1(或者-1)也不为0;
第三种:假定a={"1", "-2.31", "0"}或者a={"-1", "0.15", "0"},a中除了0和1(或者-1),另外一个数不为0和1(或者-1);我的目的是:碰到第一种和第二种情况,对a不做改动;
碰到第三种情况,就将a中的那个不为0和1(或者-1)的数字,改为0。例如针对第三种情况的两个a,就改成:
a={"1", "0", "0"}和a={"-1", "0", "0"},就是将“-2.31”和“0.15”都改成0,然后返回新的a值。
麻烦各位帮帮忙了!谢谢!
a中的元素有如下三种类型:
第一种:假定a={"-1", "0", "0"}或者a={"0", "1", "0"},就是说,a中的元素有两个0,一个1或-1;
第二种:假定a={"0.12", "0.98", "0"}或者a={"0", "0.47", "1.38"},就是说,a中除了有一个0外,另外两个数不为1(或者-1)也不为0;
第三种:假定a={"1", "-2.31", "0"}或者a={"-1", "0.15", "0"},a中除了0和1(或者-1),另外一个数不为0和1(或者-1);我的目的是:碰到第一种和第二种情况,对a不做改动;
碰到第三种情况,就将a中的那个不为0和1(或者-1)的数字,改为0。例如针对第三种情况的两个a,就改成:
a={"1", "0", "0"}和a={"-1", "0", "0"},就是将“-2.31”和“0.15”都改成0,然后返回新的a值。
麻烦各位帮帮忙了!谢谢!
if a(i)<>0 and a(i)<>1 and a(i)<>-1 then
a(i)=0
endif
next
就是单纯的一些判断而已啊
Private Sub Command1_Click() Dim a(2) As Double
a(0) = 0: a(1) = 1: a(2) = 0
yz a
For i = 0 To 2
Debug.Print a(i);
Next
Debug.Print
a(0) = 0.12: a(1) = 0.98: a(2) = 0
yz a
For i = 0 To 2
Debug.Print a(i);
Next
Debug.Print a(0) = 1: a(1) = -2.31: a(2) = 0
yz a
For i = 0 To 2
Debug.Print a(i);
Next
Debug.PrintEnd SubPrivate Sub yz(a() As Double)
Dim i As Byte, L As Byte, NL As Byte
For i = 0 To 2
If a(i) = 0 Then L = L + 1
If a(i) <> -1 And a(i) <> 1 And a(i) <> 0 Then NL = NL + 1
Next
If L = 1 And NL = 1 Then
For i = 0 To 2
If a(i) <> 0 And a(i) <> 1 And a(i) <> -1 Then a(i) = 0
Next
End IfEnd Sub
Dim a1 As Double() = {"-1", "0", "0"}不做改变
Dim a2 As Double() = {"0", "1", "0"}不做改变
Dim a3 As Double() = {"0.12", "0.98", "0"}不做改变
Dim a4 As Double() = {"0", "0.47", "1.38"}不做改变
Dim a5 As Double() = {"1", "-2.31", "0"}变为{"1", "-0", "0"}
Dim a6 As Double() = {"-1", "0.15", "0"}变为{"-1", "0", "0"}
但是你的程序结果是:
Dim a1 As Double() = {"-1", "0", "0"}达到要求
Dim a2 As Double() = {"0", "1", "0"}达到要求
Dim a3 As Double() = {"0.12", "0.98", "0"}达到要求
Dim a4 As Double() = {"0", "0.47", "1.38"}应该不变的,但是你的结果却变成了{"0","0","0"}
Dim a5 As Double() = {"1", "-2.31", "0"}应该变为{"1", "-0", "0"},但你的结果是{"1","0","0"}
Dim a6 As Double() = {"-1", "0.15", "0"}达到要求。
你的程序没能实现我想要的结果哦!谢谢!