vb产生30个100以内的随机整数并统计出优、良、中等、及格、不及格的个数,并统计成绩属于优秀段的平均分
答案:2 悬赏:0 手机版
解决时间 2021-01-29 23:50
- 提问者网友:欺烟
- 2021-01-29 19:23
vb产生30个100以内的随机整数并统计出优、良、中等、及格、不及格的个数,并统计成绩属于优秀段的平均分
最佳答案
- 五星知识达人网友:深街酒徒
- 2021-01-29 19:46
多少是优?多少是良?多少是中等,根本就没有一个条件,程序很容易,但没有条件没办法做啊。追问90优 80良 70中等 60及格 60一下不及格 谢谢 大神解答追答代码如下:
Private Sub Command1_Click()
Dim sz(30) '数组
Dim a, b, c, d, e As Long '优、良、中等、及格、不及格的个数
Dim aa As Long '优秀分数
a = 0
b = 0
c = 0
d = 0
e = 0
aa = 0
For i = 0 To 29 '生成30组
Randomize '重置随机数种子
sz(i) = Int(101 * Rnd) '生成1-100随机数
Select Case sz(i)
Case 1 To 59
e = e + 1 '不及格
Case 60 To 69
d = d + 1 '及格
Case 70 To 79
c = c + 1 '中等
Case 80 To 89
b = b + 1 '良
Case 90 To 100
a = a + 1 '优
aa = aa + sz(i) '分数累计
End Select
Next i
Print "不及格:", e
Print "及 格:", d
Print "中 等:", c
Print "良 好:", b
Print "优 秀:", a
Print "优秀平均分:", aa / a
End Sub
Private Sub Command1_Click()
Dim sz(30) '数组
Dim a, b, c, d, e As Long '优、良、中等、及格、不及格的个数
Dim aa As Long '优秀分数
a = 0
b = 0
c = 0
d = 0
e = 0
aa = 0
For i = 0 To 29 '生成30组
Randomize '重置随机数种子
sz(i) = Int(101 * Rnd) '生成1-100随机数
Select Case sz(i)
Case 1 To 59
e = e + 1 '不及格
Case 60 To 69
d = d + 1 '及格
Case 70 To 79
c = c + 1 '中等
Case 80 To 89
b = b + 1 '良
Case 90 To 100
a = a + 1 '优
aa = aa + sz(i) '分数累计
End Select
Next i
Print "不及格:", e
Print "及 格:", d
Print "中 等:", c
Print "良 好:", b
Print "优 秀:", a
Print "优秀平均分:", aa / a
End Sub
全部回答
- 1楼网友:执傲
- 2021-01-29 20:28
先给出代码:Private Sub Form_Click()
Dim a(40), b(40), c(40), d(40), e(40), f(40) As Integer ''''数组开大一点,防止储存溢出
'生成0到100之间的随机数值。
Randomize ' 对随机数生成器做初始化的动作。
For i = 1 To 30
a(i) = Int(101 * Rnd)
Next i
'初始化这五个数为0.它们代表五种成绩分别的数量
j = 0
k = 0
l = 0
m = 0
n = 0
'下边这一行代码的作用是分类。将五种成绩的学生分别放进bcdef五个数组中。
For i = 1 To 30
If a(i) >= 90 Then
j = j + 1
b(j) = a(i)
ElseIf a(i) >= 80 Then
k = k + 1
c(k) = a(i)
ElseIf a(i) >= 70 Then
l = l + 1
d(l) = a(i)
ElseIf a(i) >= 60 Then
m = m + 1
e(m) = a(i)
Else
n = n + 1
f(n) = a(i)
End If
Next i
'sum的作用是求和以便求优秀学生的平均成绩
Sum = 0
'分别输出五种学生,注意输出时候分号和print的用法
Print "优:";
For i = 1 To j
Print b(i) & " ";
Sum = Sum + b(i) '''''累计求90分以上成绩之和
Next i
Print "良:";
For i = 1 To k
Print c(i) & " ";
Sum = Sum + c(i) ''''''将80分以上成绩加入
Next i
Print "中:";
For i = 1 To l
Print d(i) & " ";
Next i
Print "及格:";
For i = 1 To m
Print e(i) & " ";
Next i
Print "不及格:";
For i = 1 To n
Print f(i) & " ";
Next i
Print Sum / (j + k) ''''''''输出平均数
End Sub
回答完毕,亲测可行。
欢迎追问。追问多谢大神解答
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯