题目哈: [(单科成绩-60)/10+1]*单科学分 求和后再除以总学分

Option Base 1
Const num = 10
Dim a(num) As Single, b(num) As Single, c(num) As Single
Dim x As Single, m As Single
Dim sum As Single, i As Integer

Private Sub Command1_Click()

sum = 0
For i = 1 To num
c(i) = ((a(i) - 60) / 10 + 1) * b(i)
sum = sum + c(i)
Next i

x = sum / m
Print "Text00.Text"; x
End Sub

Private Sub Form_Load()

a(1) = Val("Text1.Text") '各科成绩
a(2) = Val("Text2.Text")
a(3) = Val("Text3.Text")
a(4) = Val("Text4.Text")
a(5) = Val("Text5.Text")
a(6) = Val("Text6.Text")
a(7) = Val("Text7.Text")
a(8) = Val("Text8.Text")
a(9) = Val("Text9.Text")
a(10) = Val("Text10.Text")
b(1) = Val("Text11.Text") '各科学分
b(2) = Val("Text12.Text")
b(3) = Val("Text13.Text")
b(4) = Val("Text14.Text")
b(5) = Val("Text15.Text")
b(6) = Val("Text16.Text")
b(7) = Val("Text17.Text")
b(8) = Val("Text18.Text")
b(9) = Val("Text19.Text")
b(10) = Val("Text20.Text")
m = Val(Text0.Text) '总学分
End Sub

手掌心
浏览 88回答 3
3回答

小唯快跑啊

下面是根据你的程序改起来的,改动的地方就是把Form_load函数中的40个双引号去掉Option ExplicitOption Base 1Const num = 10Dim a(num) As Single, b(num) As Single, c(num) As SingleDim x As Single, m As SingleDim sum As Single, i As IntegerPrivate Sub Command1_Click()sum = 0For i = 1 To numc(i) = ((a(i) - 60) / 10 + 1) * b(i)sum = sum + c(i)Next ix = sum / mPrint "Text00.Text"; xEnd SubPrivate Sub Form_Load()a(1) = Val(Text1.Text) '各科成绩a(2) = Val(Text2.Text)a(3) = Val(Text3.Text)a(4) = Val(Text4.Text)a(5) = Val(Text5.Text)a(6) = Val(Text6.Text)a(7) = Val(Text7.Text)a(8) = Val(Text8.Text)a(9) = Val(Text9.Text)a(10) = Val(Text10.Text)b(1) = Val(Text11.Text) '各科学分b(2) = Val(Text12.Text)b(3) = Val(Text13.Text)b(4) = Val(Text14.Text)b(5) = Val(Text15.Text)b(6) = Val(Text16.Text)b(7) = Val(Text17.Text)b(8) = Val(Text18.Text)b(9) = Val(Text19.Text)b(10) = Val(Text20.Text)m = Val(Text0.Text) '总学分End Sub============================================下面是我给你写的程序,你可以和你的程序比较一下孰优孰劣窗体上左上角放一个TextBox和右边放一个按钮就可以了,不需要象你那样放21个TextBoxOption ExplicitOption Base 1Const Total = 10Private Sub Command1_Click()Dim Sum As Single, Score(Total) As Single, Credit(Total) As SingleDim i As Integer, SumCredit As IntegerFor i = 1 To TotalScore(i) = (Val(Text1(i - 1).Text) - 60) / 10 + 1Credit(i) = Val(Text1(i + Total - 1).Text)Sum = Sum + Score(i) * Credit(i)SumCredit = SumCredit + Credit(i)Next iMsgBox "平均学分:" & Format(Sum / SumCredit, "0.00")End SubPrivate Sub Form_Load()Dim i As IntegerText1(0).Text = 90For i = 0 To Total - 1If i <> 0 ThenLoad Text1(i)Text1(i).Left = Text1(0).LeftText1(i).Top = Text1(i - 1).Top + Text1(0).Height + 100Text1(i).Visible = TrueText1(i).Text = Int(Rnd * 60) + 35End IfLoad Text1(i + Total)Text1(i + Total).Left = Text1(0).Left + Text1(0).Width + 400Text1(i + Total).Top = Text1(i).TopText1(i + Total).Visible = TrueText1(i + Total).Text = Int(Rnd * 5) + 1NextEnd Sub=========================================我觉得,你的程序的一个闪光点就是c(i) = ((a(i) - 60) / 10 + 1) * b(i)这一句.如果这句是你自己写的,那证明你还是很有想法的&nbsp;

ITMISS

我给你改一下吧:Option Base 1&nbsp;Const num = 10&nbsp;Dim a(num) As Single, b(num) As Single, c(num) As Single&nbsp;Dim x As Single, m As Single&nbsp;Dim sum As Single, i As Integer&nbsp;Private Sub Command1_Click()&nbsp;sum = 0&nbsp;m=0For i = 1 To num&nbsp;c(i) = ((a(i) - 60) / 10 + 1) * b(i)&nbsp;sum = sum + c(i)m=m+b(i)&nbsp;Next i&nbsp;if m>0x = sum / m&nbsp;Print "Text00.Text"; x&nbsp;end ifEnd Sub&nbsp;Private Sub Form_Load()&nbsp;a(1) = Val(Text1.Text) '各科成绩&nbsp;a(2) = Val(Text2.Text)&nbsp;a(3) = Val(Text3.Text)&nbsp;a(4) = Val(Text4.Text)&nbsp;a(5) = Val(Text5.Text)&nbsp;a(6) = Val(Text6.Text)&nbsp;a(7) = Val(Text7.Text)&nbsp;a(8) = Val(Text8.Text)&nbsp;a(9) = Val(Text9.Text)&nbsp;a(10) = Val(Text10.Text)&nbsp;b(1) = Val(Text11.Text) '各科学分&nbsp;b(2) = Val(Text12.Text)&nbsp;b(3) = Val(Text13.Text)&nbsp;b(4) = Val(Text14.Text)&nbsp;b(5) = Val(Text15.Text)&nbsp;b(6) = Val(Text16.Text)&nbsp;b(7) = Val(Text17.Text)&nbsp;b(8) = Val(Text18.Text)&nbsp;b(9) = Val(Text19.Text)&nbsp;b(10) = Val(Text20.Text)&nbsp;End Sub语法不规范,思维不严谨&nbsp;

qq_笑_17

因为你的a(1)-a(10),b(1)-b(10)中赋值中多了双引号,所以最终赋值结果都是0,最终造成m=0,并且sum也=0所以当sum=sum/m时会溢出。解决办法,把刚才说的那些双引号去掉。
打开App,查看更多内容
随时随地看视频慕课网APP