首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >qb64中函数错误所需的数目

qb64中函数错误所需的数目
EN

Stack Overflow用户
提问于 2022-09-14 03:33:06
回答 1查看 25关注 0票数 0

我正在编写一个qb64 / QBasic软件程序,将数字等级0-100转换为字母等级(a,b,c,d,f)。我已经设置了它,以便使用字符串/数组来允许输入无限等级。然而,当我试图计算字母等级,并将它用calcGrade!(MyList(Index%))调用回打印时,我会收到错误的“函数所需的数字”,有人能帮我吗?

代码语言:javascript
复制
ReDim MyList(0) As String
Dim Grade 
Dim Index%
_Title "Letter Grade Calculator"
Print "Enter your numerical grades. To finish enter (exit)"
Do While Grade$ <> "exit"
    Input "Enter Grade"; Grade$
    If Grade$ <> "exit" Then
        Index% = Index% + 1
        ReDim _Preserve MyList(Index%)
        MyList(Index%) = Grade$
    End If
Loop
Cls
For Index% = 1 To UBound(MyList)
    Print MyList(Index%);
     Print "Letter Grade:"; calcGrade!(MyList(Index%))
Next Index%
Function calcGrade! (numGrade)
      Select Case val(numGrade)
        Case is > 100
             calcGrade! = "A+"
       Case Is > 90
             calcGrade! = "A"
       Case Is > 80
             calcGrade! = "B"
      Case Is > 70
             calcGrade! = "C"
      Case Is > 60
             calcGrade! = "D"
       Case Is > 50
             calcGrade! = "F"
      Case Else
             calcGrade! = "ERROR: Invalid character"
     End Select
End Function
EN

回答 1

Stack Overflow用户

发布于 2022-09-19 16:50:19

然而,当我试图计算字母等级并将其拨回用

打印时,我会收到“函数所需的号码”。

您为calcGrade!(MyList(Index%))接收的错误“函数所需的数字”意味着calcGrade函数期望从您那里收到一个数值参数,该参数将分配给它的numGrade参数。

Function calcGrade! (numGrade)

没有任何显式声明,numGrade参数默认为单一数值格式。但是,您正在通过提供一个MyList字符串参数

另一个错误是函数名称上的感叹号声明函数以返回单个值。因此,您不能将"A+“、"A”、"B“、"C”、"D“、"F”和“错误:无效字符”字符串值分配给它。

解决方案是将$字符串后缀用于Calculate$和numGrade$。

代码语言:javascript
复制
...
Cls
For Index% = 1 To UBound(MyList)
    Print MyList(Index%); " -> ";
    Print "Letter Grade:"; calcGrade$(MyList(Index%))
Next Index%
Function calcGrade$ (numGrade$)
    Select Case val(numGrade$)
      Case Is > 100
             calcGrade$ = "A+"
      Case Is > 90
             calcGrade$ = "A"
      Case Is > 80
             calcGrade$ = "B"
      Case Is > 70
             calcGrade$ = "C"
      Case Is > 60
             calcGrade$ = "D"
      Case Is > 50
             calcGrade$ = "F"
      Case Else
             calcGrade$ = "ERROR: Invalid character"
    End Select
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73711222

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档