一道VB题 希望各位大侠帮忙
求一位数组中各元素之和,最小数组元素,并将最小数组元素与数组中的第一个元素交换。代码如下:PrivateSubcommand1_Click()Dima,i%,min%,i...
求一位数组中各元素之和,最小数组元素,并将最小数组元素与数组中的第一个元素交换。
代码如下:
Private Sub command1_Click()
Dim a, i%, min%, imin%, sum%, t%
a = Array(26, 43, 61, 87, 33, 19, 37, 59, 76, 69)
min = a(0): imin = 0: sum = a(0)
For i = 1 To UBound(a)
sum = sum + a(i)
If a(i) < min Then min = a(i): a(imin) = i
Next i
t = a(0): a(0) = a(imin): a(imin) = t
Print "数组元素和="; sum, "最小元素值为:"; a(0)
End Sub
我有几个问题:
1 min = a(0),其中a(0)是什么意思呢?
2 为什么imin = 0
3为什么 sum = a(0)?这里的a(0)与min = a(0)的a(0)事一样的吗?
4 For i = 1 To UBound(a)这条语句中为什么不写成For i = LBound(a)To UBound(a)??1是什么意思呢?
5 我在VB中运行的时候结果是 数组元素和=510 最小元素值为:5
可是为什么最小元素值是5呢?Array(26, 43, 61, 87, 33, 19, 37, 59, 76, 69)中并没有5啊。。。
6 “ 并将最小数组元素与数组中的第一个元素交换”这句话在VB运行时怎么没有显示出来呢 ? imin 是数组中的第一个元素的意思吗,还是数组下标的意思???
希望各位大侠指教 我是VB初学者啊。。。好希望把它学好。。。讲解清楚的我再提高奖励。。小女子先谢谢了 展开
代码如下:
Private Sub command1_Click()
Dim a, i%, min%, imin%, sum%, t%
a = Array(26, 43, 61, 87, 33, 19, 37, 59, 76, 69)
min = a(0): imin = 0: sum = a(0)
For i = 1 To UBound(a)
sum = sum + a(i)
If a(i) < min Then min = a(i): a(imin) = i
Next i
t = a(0): a(0) = a(imin): a(imin) = t
Print "数组元素和="; sum, "最小元素值为:"; a(0)
End Sub
我有几个问题:
1 min = a(0),其中a(0)是什么意思呢?
2 为什么imin = 0
3为什么 sum = a(0)?这里的a(0)与min = a(0)的a(0)事一样的吗?
4 For i = 1 To UBound(a)这条语句中为什么不写成For i = LBound(a)To UBound(a)??1是什么意思呢?
5 我在VB中运行的时候结果是 数组元素和=510 最小元素值为:5
可是为什么最小元素值是5呢?Array(26, 43, 61, 87, 33, 19, 37, 59, 76, 69)中并没有5啊。。。
6 “ 并将最小数组元素与数组中的第一个元素交换”这句话在VB运行时怎么没有显示出来呢 ? imin 是数组中的第一个元素的意思吗,还是数组下标的意思???
希望各位大侠指教 我是VB初学者啊。。。好希望把它学好。。。讲解清楚的我再提高奖励。。小女子先谢谢了 展开
3个回答
展开全部
1、a(0)就是下标为零的数组元素,也就是后面说的“第一个元素”;
2、imin是指最小元素(min)的下标,这里imin = 0就是暂时将a(0)当做最小的元素;
3、sum是指个元素之和,这里sum = a(0)首先把第一个元素写到sum里,后面通过um = sum + a(i)依次将其他元素加进来。所有的a(0)都是一样的,指当前的第一个元素;
4、因为前面已经处理了a(0),所以就下标从1开始,而不是用LBound(a);
5、这是编程错误引起的。具体的位置是If a(i) < min Then min = a(i): a(imin) = i中间的 a(imin) = i,这里本来是记录最小元素的位置i到imin中,但写程序的人搞错了,把最小的元素的序号i写到数组里面了(本数组最小的是第六个数19,下标为5),所以最后输出了5;
6、 t = a(0): a(0) = a(imin): a(imin) = t就是“将最小数组元素与数组中的第一个元素交换”的代码;imin上面已经说过了;
改错结果为:
Private Sub command1_Click()
Dim a, i%, min%, imin%, sum%, t%
a = Array(26, 43, 61, 87, 33, 19, 37, 59, 76, 69)
min = a(0): imin = 0: sum = a(0)
For i = 1 To UBound(a)
sum = sum + a(i)
If a(i) < min Then min = a(i): imin = i
Next i
t = a(0): a(0) = a(imin): a(imin) = t
Print "数组元素和="; sum, "最小元素值为:"; a(0)
End Sub
最后运行输出:
数组元素和= 510 最小元素值为: 19
2、imin是指最小元素(min)的下标,这里imin = 0就是暂时将a(0)当做最小的元素;
3、sum是指个元素之和,这里sum = a(0)首先把第一个元素写到sum里,后面通过um = sum + a(i)依次将其他元素加进来。所有的a(0)都是一样的,指当前的第一个元素;
4、因为前面已经处理了a(0),所以就下标从1开始,而不是用LBound(a);
5、这是编程错误引起的。具体的位置是If a(i) < min Then min = a(i): a(imin) = i中间的 a(imin) = i,这里本来是记录最小元素的位置i到imin中,但写程序的人搞错了,把最小的元素的序号i写到数组里面了(本数组最小的是第六个数19,下标为5),所以最后输出了5;
6、 t = a(0): a(0) = a(imin): a(imin) = t就是“将最小数组元素与数组中的第一个元素交换”的代码;imin上面已经说过了;
改错结果为:
Private Sub command1_Click()
Dim a, i%, min%, imin%, sum%, t%
a = Array(26, 43, 61, 87, 33, 19, 37, 59, 76, 69)
min = a(0): imin = 0: sum = a(0)
For i = 1 To UBound(a)
sum = sum + a(i)
If a(i) < min Then min = a(i): imin = i
Next i
t = a(0): a(0) = a(imin): a(imin) = t
Print "数组元素和="; sum, "最小元素值为:"; a(0)
End Sub
最后运行输出:
数组元素和= 510 最小元素值为: 19
富港检测技术(东莞)有限公司_
2024-06-06 广告
2024-06-06 广告
ISTA3L是一个基于研究、数据驱动的测试协议,它模拟了由零售公司完成的产品订单被直接运送给消费者时所经历的危险,它允许用户评估包装产品的能力,以承受运输和处理包装产品时所经历的供应链危险,从接收到任何电子商务零售商履行操作,直到最终消费者...
点击进入详情页
本回答由富港检测技术(东莞)有限公司_提供
展开全部
1、min = a(0),其中a(0)=26,就是假设数组a的第一个元素为最小值,即min=26;
2、第一点既然已经假设a(0)是最小值,那么现在最小值的下标当然是0了,所以imin = 0;
3、 sum = a(0),在这里是把数组第一个元素赋值给sum,方便下面计算。而这里的a(0)与min = a(0)的a(0)都是数组a的第一个元素,是一样的;
4、因为我们已经假设数组a的第一个元素为最小值了,那么下一步就是用这个最小值比较剩下的元素即可,而且现在最小值的下标是0了,那么从下标为1开始就行,所以不用For i = LBound(a)To UBound(a)。
5、因为你的代码错误,所以会显示5,应该把源代码中的a(imin) = i应改为imin = i即可;
6、 t = a(0): a(0) = a(imin): a(imin) = t的意思就是“ 将最小数组元素与数组中的第一个元素交换”。
2、第一点既然已经假设a(0)是最小值,那么现在最小值的下标当然是0了,所以imin = 0;
3、 sum = a(0),在这里是把数组第一个元素赋值给sum,方便下面计算。而这里的a(0)与min = a(0)的a(0)都是数组a的第一个元素,是一样的;
4、因为我们已经假设数组a的第一个元素为最小值了,那么下一步就是用这个最小值比较剩下的元素即可,而且现在最小值的下标是0了,那么从下标为1开始就行,所以不用For i = LBound(a)To UBound(a)。
5、因为你的代码错误,所以会显示5,应该把源代码中的a(imin) = i应改为imin = i即可;
6、 t = a(0): a(0) = a(imin): a(imin) = t的意思就是“ 将最小数组元素与数组中的第一个元素交换”。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1.a(0)=26 就是
a = Array(26, 43, 61, 87, 33, 19, 37, 59, 76, 69)这一语句中的第一个元素 a是数组 数组是从0开始记起
2.
If a(i) < min Then min = a(i): a(imin) = i 看着一句你应该明白了吧
a = Array(26, 43, 61, 87, 33, 19, 37, 59, 76, 69)这一语句中的第一个元素 a是数组 数组是从0开始记起
2.
If a(i) < min Then min = a(i): a(imin) = i 看着一句你应该明白了吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询