vb函数调用数组作为函数参数需要关心数组作为函数参数的定义吗

急急急!! vb函数调用数组_百度知道
急急急!! vb函数调用数组
四个text文本 构成一个数组 和一个求平均值的按钮程序如下Option Base 1Private Function Average(a() As Integer) As Single
Dim Start As Integer, Finish As Integer
Dim i As Integer
Dim Sum As Integer
Start = LBound(a)
Finish = UBound(a)
For i = Start To Finish
Sum = Sum + a(i)
N攻畅掇堆墀瞪峨缺法画ext i
Average = Sum / FinishEnd FunctionPrivate Sub Command1_Click()
Dim arr2(4) As Integer
arr1 = Array(Val(Text1.Text), Val(Text2.Text), Val(Text3.Text), Val(Text4.Text))
For i = 1 To 4
arr2(i) = CInt(arr1(i))
Aver = Average(arr2)
Print &平均值是: &; AverEnd Sub请问 为什么 倒数第二步写成 aver=average(arr2(i))是错的 错误提示为“编译错误:类型不匹配缺少数组或用户定义类型”
只有去掉(i)才是对的.如原代码
提问者采纳
Pri攻畅掇堆墀瞪峨缺法画vate Function Average(a() As Integer) As Single 中 你定义的参数是一个数组,而arr2(i)是数组中的一个元素
其他类似问题
按默认排序
其他1条回答
提示哪行出错
您可能关注的推广
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁当前位置: >
> VB6.0中,数组参数在过程调用的有关问题:类型不匹配,缺少数组或用户定义类型
VB6.0中,数组参数在过程调用的有关问题:类型不匹配,缺少数组或用户定义类型
John110 & at
VB6.0中,数组参数在过程调用的问题:类型不匹配,缺少数组或用户定义类型Private Sub ChangeBytetoNot(DataByte As String, ResultOut() As String) &
Dim Data As Long, i As Integer, TempBuffer As String, Result As String &
Call ChangeBytetoBit(DataByte, Result) &
For i = 1 To 8 &
Data = Mid(Result, i, 1) &
If Data = 1 Then &
TempBuffer = TempBuffer & &0& &
TempBuffer = TempBuffer & &1& &
ResultOut = TempBufferEnd SubPrivate Sub Command1_Click() &
Dim Result(4) As String, Middata As String &
For i = 0 To 3 &
Middata = Mid(Text1.Text, i * 2 + 1, 2) &
Call ChangeBytetoNot(Middata, Result(i))
提示此处错误:类型不匹配,缺少数组或用户定义类型 &
Next iEnd Sub帮我看看数组变量调用中里出错了,以前没有这样写过,给个解决方法呗,谢谢了。。。。
Call ChangeBytetoNot(Middata, Result)
john66 & &
& & (0)(0)
Private Sub ChangeBytetoNot(DataByte As String, ResultOut As String)john6086 & &
& & (0)(0)
本问题标题:
本问题地址:
温馨提示:本问题已经关闭,不能解答。
暂无合适的专家
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&&&湘教QS2-164&&增值电信业务经营许可证湘B2-c语言,以调用定义函数来实现长度可变的数组&br/&void func(int m)&br/&{int a[m];&br/&.....}&br/&int main()&br/&{&br/&scanf(&%d&,m);&br/&func(m);&br/&}&br/&运行后显示&a& : unknown size,为什么无法使用
c语言,以调用定义函数来实现长度可变的数组void func(int m){int a[m];.....}int main(){scanf(&%d&,m);func(m);}运行后显示&a& : unknown size,为什么无法使用
不区分大小写匿名
我有一个案例·可以传给你·只要你先给分给我就行!
scanf函数有2个参数,1是格式控制,2参数列表(指针型),它是从输入设备键盘获取输入的值,来存储到参数列表指针所指向的内存单元,
你这里大意了,&scanf("%d",m);m前面少了&,这样被键盘读入的不是指针指向的单元,,会导致系统崩溃的
没有初始化m
1、scanf("%d", &m);2、对于你这种静态数组a中的m参数必须是常量,如果是可变的变量的话,那就需要使用动态数组:int *a = new int[m];注意:动态数组,空间在不使用的情况下需要手动释放:
编译都过不了,毛运行结果
相关知识等待您来回答
编程领域专家求解一道VB程序设计题:定义一个二维数组a,共4行4列。要求:(1)用随机函数产生[50,100]范围内的随机整数,并赋值给数组元素,并把改数组以4行4列的形式显示在窗体上。(2)求出数组的最大值max,最小值min,以及它们所对应的下标,并显示在窗体上。(3)求出数组元素的总和
求解一道VB程序设计题:定义一个二维数组a,共4行4列。要求:(1)用随机函数产生[50,100]范围内的随机整数,并赋值给数组元素,并把改数组以4行4列的形式显示在窗体上。(2)求出数组的最大值max,最小值min,以及它们所对应的下标,并显示在窗体上。(3)求出数组元素的总和
1、如下图创建工程和窗体,在窗体上部放置1个TextBox,名称为Text1,底部放置三个CommandButton按钮,名称分别为Command1、Command2、Command3,Caption分别按图设置。2、在工程的代码窗口粘贴下图所示的代码,运行结果也见下图:
不好意思,刚开始是准备设计成每个按键完成一个问题的,后来改为一次完成所有问题了,但第一幅图忘了重新截图了,这里更正如下:1、如下图创建工程和窗体,在窗体上部放置一个TextBox,名称为Text1。请注意将Text1的”MultiLine“属性改为”True“,否则是无法显示多行文字的;窗体底部放置一个CommandButton按钮,名称为Command1,Caption编辑为“运行”。
提问者 的感言:你就是当代的活雷锋,太感谢了!
其他回答 (1)
Dim a(5, 5) Private Sub Command1_Click() Text1 = && Randomize For i = 1 To 5 For j = 1 To 5 a(i, j) = Int(Rnd * 90) + 10 Text1 = Text1 & a(i, j) & & & Next Text1 = Text1 & vbCrLf Next End Sub Private Sub Command2_Click() For i = 1 To 5 For j = 1 To 5 s = s + a(i, j) Next Next MsgBox &所有元素之和=& & s End Sub Private Sub Command3_Click() For i = 1 To 5 s = s + a(i, i) + a(i, 6 - i) Next MsgBox &两条对角线元素之和=& & s End Sub Private Sub Command4_Click() Text2 = && For i = 1 To 5 t = a(i, 1) a(i, 1) = a(i, 3) a(i, 3) = t Next For i = 1 To 5 For j = 1 To 5 Text2 = Text2 & a(i, j) & & & Next Text2 = Text2 & vbCrLf Next End Sub
相关知识等待您来回答
编程领域专家vb函数调用数组需要关心数组的定义吗_百度知道
vb函数调用数组需要关心数组的定义吗
Function max(ByRef a()) As VariantDim max1#max1 = a(LBound(a))For i = LBound(a) + 1 To UBound(a)
If a(i) & max1 Then
max1 = a(i)
End IfNext imax = max1End FunctionPrivate Sub Form_Load()Dim a#, b#, c#, d() As Variant, e#a = InputBox(&enter a number&)b = InputBox(&enter a number&)If a & b Then
c = bEnd IfReDim d(1 To c)For i = 1 To c
If a Mod i = 0 And b Mod i = 0 Then
End IfNext ie = max(d)Print eEnd Sub如果改变数组定义成双精度就不行了提示“缺少数组或用户定义类型”,为什么呢?Function max(ByRef a()) As doubleDim max1#max1 = a(LBound(a))For i = LBound(a) + 1 To UBound(a)
If a(i) & max1 Then
max1 = a(i)
End IfNext imax = max1End FunctionPrivate Sub Form_Load()Dim a#, b#, c#, d() As double, e#a = InputBox(&enter a number&)b = InputBox(&enter a number&)If a & b Then
c = bEnd IfReDim d(1 To c)For i = 1 To c
If a Mod i = 0 And b Mod i = 0 Then
End IfNext ie = max(d)Print eEnd Sub
提问者采纳
Function max(ByRef a()) As double改为Function max(ByRef a() As Double) As Double也就是说形式参数的类型要与实际参数一致补充:ByRef可以省略,因为默认就是ByRef的
提问者评价
其他类似问题
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 c语言函数调用数组 的文章

 

随机推荐