Yahoo奇摩知識+將於 2021 年 5 月 4 日 (美國東部時間) 終止服務。自 2021 年 4 月 20 日 (美國東部時間) 起,Yahoo奇摩知識+服務將會轉為唯讀模式。其他Yahoo奇摩產品與服務或您的Yahoo奇摩帳號都不會受影響。如需關於Yahoo奇摩知識+ 停止服務以及下載您個人資料的資訊,請參閱說明網頁。

? 發問時間: 電腦與網際網路程式設計 · 1 0 年前

程式做道一半就不會做了

題目是

寫一程式輸入n個學生的考試成績,計算全斑平均分數,並求其中最高分數及最低分數

以下是我寫的但我不知道若是要求最低分數要怎麼寫

Private Sub Form_Activate()

Dim n As Integer

Dim a(100) As Integer

Dim i As Integer

Dim b As Integer

Dim c As Integer

n = InputBox("請輸入n個學生成績")

For i = 1 To n

a(i) = InputBox("請輸入成績")

Next

For i = 1 To n

If a(i) >= 0 Then

b = b + a(i)

End If

Next

Print b / n

For i = 1 To n - 1

For c = i + 1 To n

If a(i) > a(c) Then

t = a(i)

a(i) = a(i)

a(c) = t

End If

Next c

Next i

Print "最大數為"; a(n)

End Sub

4 個解答

評分
  • 1 0 年前
    最佳解答

    我們學的v.b好像不太一樣

    但是我用我學的寫寫看~跑的出來!!

    你可以參考看看~

    Dim n, i, b, t, k As Integer

    Dim a(100) As Integer

    n = InputBox("請輸入n個學生成績")

    For i = 1 To n

    a(i) = InputBox("請輸入成績")

    Next

    For i = 1 To n

    If a(i) >= 0 Then

    b = b a(i)

    End If

    Next

    '將k跟t的值設為輸入的第一個成績

    k = a(1)

    t = a(1)

    Print(b / n)

    For i = 1 To n

    '如果目前在跑的a(i)大於t則取代他

    If a(i) > t Then

    t = a(i)

    End If

    '如果目前在跑的a(i)小於k則取代他

    If a(i) < k Then

    k = a(i)

    End If

    Next i

    '我沒學過print...我猜他應該是輸出指令吧@@

    Print "最大數為"; t

    Print "最小數為"; k

    希望有幫到你@@

    參考資料: 自己~
  • ?
    Lv 6
    1 0 年前

    .

    .

    If a(i) > a(c) Then

    t = a(i)

    a(i) = a(i)

    a(c) = t

    .

    .

    你在做 SWAP 時, 發生 typo.

    應是

    a(i) = a(c)

  • ?
    Lv 7
    1 0 年前

    Print "最小數為"; a(0)

  • ?
    Lv 5
    1 0 年前

    加這三行 小於60分 重新輸入

    60可以自己改成別的

    For i = 1 To n

    a(i) = InputBox("請輸入成績")

    If a(i) < 60 Then

    i = i - 1

    End If

    Next

還有問題?馬上發問,尋求解答。