这个VB题

来源:百度知道 编辑:UC知道 时间:2024/06/08 09:57:08
Option Base 1
Private Sub Command1_Click()

Dim a
a = Array(1, 2, 3, 4)
j = 1
For i = 4 To 1 Step -1
s = s + a(i) * j
j = j * 10
Next i
Print s
End Sub

结果是多少?
怎么理解?

第一次循环,i=4,a(i)=4,s=0+4*1=4,j=1*10=10
第二次循环,i=3,a(i)=3,s=4+3*10=34,j=10*10=100
第三次循环,i=2,a(i)=2,s=34+2*100=234,j=100*10=1000
第四次循环,i=1,a(i)=1,s=234+1*1000=1234,j=1000*10=10000
所以结果为1234.

结果是1234

首先,Option Base 1 和
a = Array(1, 2, 3, 4) 的意思是a(1)=1,a(2)=2,a(3)=3,a(4)=4

然后i从4到1循环
每次j=j*10
相当于s=4*1 + 3*10 + 2*100 + 1*1000
结果是1234

1234
读一遍程序,会发现如下规律:i从后向前把a中的元素逐个取出,每取出一个乘以量纲j,而j:1,10,100,1000,变化,然后将结果累加。
简单的数学问题,多读几个程序就会熟练。

先理解数组a=array(1,2,3,4)这句的意思是数组a(1)=1,a(2)=2,a(3)=3,a(4)=4
再理解循环过程,
第一次循环 s=s+a(i)*j=0+a(4)*1=0+4=4
第二次循环 s=4+a(3)*10=4+30=34
第三次 s=34+a(2)*100=34+200=234
第四次 s=234+a(1)*1000=234+1*1000=1234

所以结果是 1234

你这个程序有地方错了
Dim a
a = Array(1, 2, 3, 4)
j = 1
For i = 三 To 零 Step -1 中文数字是错误的地方
s = s + a(i) * j
j = j * 10
Next i
Print s
End Sub

数组a中包括1,2,3,4四个数字
下标