求帮检查vb二级考试的一道题

题目看图PrivateFunctionIsPrime(ByValxAsInteger)AsBooleanDimiAsIntegerIsPrime=FalseIfx=1Th... 题目看图

Private Function IsPrime(ByVal x As Integer) As Boolean
Dim i As Integer
IsPrime = False
If x = 1 Then Exit Function
For i = 2 To Sqr(x)
If x Mod i = 0 Then
Exit Function
End If
Next
IsPrime = True
End Function

Private Sub Command1_Click()
'考生编写程序开始
'======================================

'=========================================
'考生编写程序结束
Open App.Path & "\out5.dat" For Output As #1
Print #1, Text1.Text, Label1.Caption, Label2.Caption
Close #1
End Sub
给的答案是
For i = 1 To Val(Text1.Text)
If IsPrime(i) And IsPrime(Val(Text1.Text) - i) Then
Label1 = i
Label2 = Val(Text1.Text) - i
Exit For
End If
Next i
我的答案是
Dim a As Integer
Dim b As Integer
Dim c As Integer
c = Val(Text1.Text)
For a = 2 To c
If IsPrime(a) = True Then
b = c - a
If IsPrime(b) = True Then
Exit For
End If
End If
Next
Label1.Caption = a
Label2.Caption = b
我的程序和标准答案算出的结果一样,可考试软件(未来教育)判为0分,为什么?
展开
 我来答
tianqing20wen

2014-08-23 · TA获得超过2.4万个赞
知道大有可为答主
回答量:8226
采纳率:88%
帮助的人:5130万
展开全部
Dim a As Integer
Dim b As Integer
Dim c As Integer
    c = Val(Text1.Text)
    For a = 2 To c
        If IsPrime(a) = True Then
            b = c - a
            If IsPrime(b) = True Then
            Label1.Caption = a '把这两句写这里试试 只有满足条件才显示 
            Label2.Caption = b
            Exit For
            End If
        End If
    Next
更多追问追答
追问
我试了,还是0分。按你说的地方我也试过。我编的程序算出来的结果是正确的,是不是软件的问题?真正考试的时候这种题是怎么改分的?还有我的程序在这道题里,人工改卷不错吧
追答
人工改 当然不会错 程序不会变通~
其实你可以 一点点修改 每修改一步让程序批改 看这个软件的规则是什么样的
第一次:比如答案里 没有多余的定义 你就把你自己的三个dim 去掉
第二次:去掉多余的变量c 直接用text1值
第三次:去掉多余的b 直接 text1-a
第四次:两个if 改一个
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式