永发信息网

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
全部回答
  • 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
    Print "良:";
    For i = 1 To k
        Print c(i) & " ";
        Sum = Sum + c(i) ''''''将80分以上成绩加入
    Next i
    Print
    Print "中:";
    For i = 1 To l
        Print d(i) & " ";
    Next i
    Print
    Print "及格:";
    For i = 1 To m
        Print e(i) & " ";
    Next i
    Print
    Print "不及格:";
    For i = 1 To n
        Print f(i) & " ";
    Next i
    Print
    Print Sum / (j + k) ''''''''输出平均数
    
End Sub


回答完毕,亲测可行。




欢迎追问。追问多谢大神解答
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯