亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

題目哈: [(單科成績-60)/10+1]*單科學分 求和后再除以總學分

題目哈: [(單科成績-60)/10+1]*單科學分 求和后再除以總學分

手掌心 2023-01-12 21:17:30
Option 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
查看完整描述

3 回答

?
小唯快跑啊

TA貢獻1863條經驗 獲得超2個贊

下面是根據你的程序改起來的,改動的地方就是把Form_load函數中的40個雙引號去掉
Option Explicit

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

============================================
下面是我給你寫的程序,你可以和你的程序比較一下孰優孰劣
窗體上左上角放一個TextBox和右邊放一個按鈕就可以了,不需要象你那樣放21個TextBox
Option Explicit

Option Base 1
Const Total = 10

Private Sub Command1_Click()
Dim Sum As Single, Score(Total) As Single, Credit(Total) As Single
Dim i As Integer, SumCredit As Integer
For i = 1 To Total
Score(i) = (Val(Text1(i - 1).Text) - 60) / 10 + 1
Credit(i) = Val(Text1(i + Total - 1).Text)
Sum = Sum + Score(i) * Credit(i)
SumCredit = SumCredit + Credit(i)
Next i

MsgBox "平均學分:" & Format(Sum / SumCredit, "0.00")
End Sub

Private Sub Form_Load()
Dim i As Integer
Text1(0).Text = 90
For i = 0 To Total - 1
If i <> 0 Then
Load Text1(i)
Text1(i).Left = Text1(0).Left
Text1(i).Top = Text1(i - 1).Top + Text1(0).Height + 100
Text1(i).Visible = True
Text1(i).Text = Int(Rnd * 60) + 35
End If
Load Text1(i + Total)
Text1(i + Total).Left = Text1(0).Left + Text1(0).Width + 400
Text1(i + Total).Top = Text1(i).Top
Text1(i + Total).Visible = True
Text1(i + Total).Text = Int(Rnd * 5) + 1
Next
End Sub
=========================================
我覺得,你的程序的一個閃光點就是
c(i) = ((a(i) - 60) / 10 + 1) * b(i)
這一句.如果這句是你自己寫的,那證明你還是很有想法的

 


查看完整回答
反對 回復 2023-01-15
?
ITMISS

TA貢獻1871條經驗 獲得超8個贊

我給你改一下吧:
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 
m=0
For i = 1 To num 
c(i) = ((a(i) - 60) / 10 + 1) * b(i) 
sum = sum + c(i)
m=m+b(i) 
Next i 

if m>0
x = sum / m 
Print "Text00.Text"; x 
end if
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) 
End Sub

語法不規范,思維不嚴謹

 


查看完整回答
反對 回復 2023-01-15
?
qq_笑_17

TA貢獻1818條經驗 獲得超7個贊

因為你的a(1)-a(10),b(1)-b(10)中賦值中多了雙引號,所以最終賦值結果都是0,最終造成m=0,并且sum也=0
所以當sum=sum/m時會溢出。解決辦法,把剛才說的那些雙引號去掉。

查看完整回答
反對 回復 2023-01-15
  • 3 回答
  • 0 關注
  • 151 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號