
vb 为什么总显示下标越界?求大神详解啊,谢谢
题目:从键盘上任意输入10个数,放入第一个数组中。再将第一个数组中的正数放入另一个数组中,接着统计正数数组的个数、总和、最大数、最小数。我的程序:PrivateSubCo...
题目:从键盘上任意输入10个数,放入第一个数组中。再将第一个数组中的正数放入另一个数组中,接着统计正数数组的个数、总和、最大数、最小数。
我的程序:
Private Sub Command1_Click()
Dim x(10) As Integer
Dim y(10) As Integer
Dim i As Integer
Dim s As Integer
Dim n As Integer
Dim j As Integer
n = 0
Print "原始数组:";
Print
For i = 1 To 10
x(i) = Val(InputBox("请输入第" & i & "个数"))
Print x(i);
If i Mod 5 = 0 Then Print
Next
Print "正数数组:"
Print
If x(i) > 0 Then
n = n + 1
y(n) = x(i)
s = s + y(n)
End If
Print y(n);
If n Mod 5 = 0 Then Print
For n = 1 To 9
For j = n + 1 To 10
If y(n) < y(j) Then
temp = y(n)
y(n) = y(j)
y(j) = temp
End If
Next
Next
Print "正数和="; s;
Print "正数个数="; n;
Print "正数最大="; y(n);
Print "正数最小="; y(j);
End Sub
不知道错在哪里了,求解答。 展开
我的程序:
Private Sub Command1_Click()
Dim x(10) As Integer
Dim y(10) As Integer
Dim i As Integer
Dim s As Integer
Dim n As Integer
Dim j As Integer
n = 0
Print "原始数组:";
For i = 1 To 10
x(i) = Val(InputBox("请输入第" & i & "个数"))
Print x(i);
If i Mod 5 = 0 Then Print
Next
Print "正数数组:"
If x(i) > 0 Then
n = n + 1
y(n) = x(i)
s = s + y(n)
End If
Print y(n);
If n Mod 5 = 0 Then Print
For n = 1 To 9
For j = n + 1 To 10
If y(n) < y(j) Then
temp = y(n)
y(n) = y(j)
y(j) = temp
End If
Next
Next
Print "正数和="; s;
Print "正数个数="; n;
Print "正数最大="; y(n);
Print "正数最小="; y(j);
End Sub
不知道错在哪里了,求解答。 展开
5个回答
展开全部
Private Sub Command1_Click()
Dim x(10) As Integer, y() As Integer
Dim i As Integer, s As Integer, n As Integer
Dim max As Integer, min As Integer
Print "原始数组:"
For i = 1 To 10
x(i) = Val(InputBox("请输入第" & i & "个数"))
Print x(i);
If i Mod 5 = 0 Then Print
Next
Print "正数数组:"
For i = 1 To 10
If x(i) > 0 Then
n = n + 1
ReDim Preserve y(n)
y(n) = x(i)
s = s + y(n)
If n = 1 Or max < y(n) Then max = y(n)
If n = 1 Or min > y(n) Then min = y(n)
Print y(n);
If n Mod 5 = 0 Then Print
End If
Next
Print "正数和="; s
Print "正数个数="; n
Print "正数最大="; max
Print "正数最小="; min
End Sub

2022-08-05 广告
苏州蓝晓生物科技有限公司。标准化核心产品:公司拥有完整的琼脂糖介质、葡聚糖介质、聚甲基丙烯酸酯介质生产线,年产分离介质50000L,产品质量稳定并达到国际领先水平。核心优势:公司核心技术人员拥有近二十年不同基质的基球开发和官能化的丰富技术经...
点击进入详情页
本回答由苏州蓝晓生物科技有限公司_提供
2015-04-28
展开全部
病情分析:
你好,根据你的描述这种情况需要及时治疗。
指导意见:
首先需要找出引起发热的病因,建议及时去医院做一个血项检测,分清细菌感染或者病毒感染,对症治疗。
你好,根据你的描述这种情况需要及时治疗。
指导意见:
首先需要找出引起发热的病因,建议及时去医院做一个血项检测,分清细菌感染或者病毒感染,对症治疗。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
If x(i) > 0 Then
n = n + 1
y(n) = x(i)
s = s + y(n)
End If
这个语句上面 i的值已经是11了,到这里当然超出范围
n = n + 1
y(n) = x(i)
s = s + y(n)
End If
这个语句上面 i的值已经是11了,到这里当然超出范围
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Print "正数数组:"
Print
If x(i) > 0 Then
n = n + 1
y(n) = x(i)
s = s + y(n)
End If
Print y(n);
If n Mod 5 = 0 Then Print
在这里,你的i在for循环后,i已经为11, If x(i) > 0 Then。 x(i)已经越界。
y(n) = x(i), x(i)已经越界。
我看,你可能是想把这段放到for循环里。
If x(i) > 0 Then
n = n + 1
y(n) = x(i)
s = s + y(n)
End If
Print y(n);
If n Mod 5 = 0 Then Print
在这里,你的i在for循环后,i已经为11, If x(i) > 0 Then。 x(i)已经越界。
y(n) = x(i), x(i)已经越界。
我看,你可能是想把这段放到for循环里。
追问
那我该如何改呢?
追答
把i赋一个小于等于10,大于等于1的值。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
数组的下标是从0开始计算的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询