发布网友
共4个回答
热心网友
只用label1 、command1和 command2 共三个控件,代码如下:
Dim S() As Single, P As Single, I As Integer
Dim N As Integer, Max As Single, Min As Single
Private Sub Command1_Click()
Label1.Caption = "得分:"
For I = 1 To N
S(I) = Val(InputBox("第" & I & "个评委的打分:", "输入", I))
Label1.Caption = Label1.Caption & " " & S(I)
Next
Command2.Caption = "计算得分"
End Sub
Private Sub Command2_Click()
If Command2.Caption = "退出" Then End
Max = 1
Min = 1
S(0) = S(1)
For I = 2 To N
If S(Max) < S(I) Then Max = I
If S(Min) > S(I) Then Min = I
S(0) = S(0) + S(I)
Next I
S(0) = S(0) - S(Max) - S(Min)
P = S(0) / (N - 2)
Label1.Caption = "最后得分:" & Format(P, "0.00")
Command2.Caption = "退出"
End Sub
Private Sub Form_Load()
Command1.Caption = "输入分数"
Command2.Caption = "退出"
Label1.AutoSize = True
Label1.Caption = ""
N = Val(InputBox("评委人数:", "输入", 10))
ReDim S(N)
End Sub
已经运行过。 而且能改变评委人数。
热心网友
dim sngData as single '输入的分数
dim sngL as single '低分数值
dim sngG as single '高分数值
dim sngSum as single '分数之和
dim sngRlt as single '最后得分
dim i as integer '循环计数
sngL=0
sngG=0
sngSum=0
For i=1 to 10 '开始10个输入评分循环
sngData=val(inputbox("请输入分数:")) '输入评分
if sngL=0 then sngL=sngData '如果最低分为0,则初始化为第一个输入的数
if sngL>sngData then sngL=sngData '如果最低分高于刚输入的分数,则调整最低分
if sngG<sngData then sngG=sngData '如果最高分小于刚输入的分数,则调整最高分
sngSum=sngSum+sngData '将得分累加
Next
sngSum=(sngSum-sngL-sngG)/8 '取得平均分
msgbox sngSum '显示结果
热心网友
Option Explicit
Dim s(1 To 10) As Integer
Private Sub Command1_Click()
'输入10个成绩
For i = 1 To 10
s(i) = InputBox("")
x = x + s(i)
Next i
'让最大最小值等于第一个数
Max = s(1): Min = s(1)
'寻找最大最小数
For i = 2 To 10
If s(i) > Max Then Max = s(i)
If s(i) < Min Then Min = s(i)
Next i
'输出平均分
Print (x - Max - Min) / 8
End Sub
热心网友
太简单了吧 双循环就可以