0

私はPythonでプログラムを書いて、ユーザーがクラスの学生数を入力できるようにし、次に各学生の3つのテスト成績を入力できるようにしています。また、生徒のテストの平均、クラスの平均、およびクラスの最大平均と最小平均も表示する必要があります。現在、各生徒の成績と平均が印刷された後にクラスの平均を印刷しないようにするのに問題があります。また、生徒ごとにその生徒の平均に変化しているため、最大と最小を機能させることもできません。

students=int(input('Please enter the number of students in the class: '))

for number in range(students):

    class_average == 0 

    first_grade=int(input("Enter student's first grade: "))
    second_grade=int(input("Enter student's second grade: "))
    third_grade=int(input("Enter student's third grade: "))


    StudentAverage=(first_grade + second_grade + third_grade)/3
    print("The student's average is", round(StudentAverage,2))



    class_average= class_average + StudentAverage
    print("The class average is", round(class_average/students,2))



maximum_num = 0

if StudentAverage > maximum_num:
    maximum= StudentAverage
    print("The maxiumum average is", round(maximum,2))


minimum_num = 100

if StudentAverage < minimum_num:
    minimum= StudentAverage
    print("The minimum average is", round(minimum,2))
4

1 に答える 1

2

イニシャライザーをループの外に移動して、各反復中に値がリセットされないようにしました。最大値と最小値の比較をループに移動し、最大値と最小値の変数を置き換えました。それぞれの新しい値はそれらの値よりもそれぞれ小さい値と大きい値であったため、代わりにmaximum_numとminimum_numを使用する必要がありました。実行中のクラスの平均は、計算された現在の数ではなく、学生の総数を使用したため、低すぎました。学生の使用をnumber+1に置き換えました。これがあなたが望むコードだと思います。

students=int(input('Please enter the number of students in the class: '))
class_average = 0 
maximum_num = 0
minimum_num = 100
for number in range(students):

  first_grade=int(input("Enter student's first grade: "))
  second_grade=int(input("Enter student's second grade: "))
  third_grade=int(input("Enter student's third grade: "))

  StudentAverage=(first_grade + second_grade + third_grade)/3
  print("The student's average is", round(StudentAverage,2))

  class_average= class_average + StudentAverage
  print("The class average is", round(class_average/(number+1),2))

  if StudentAverage > maximum_num:
    maximum_num = StudentAverage

  if StudentAverage < minimum_num:
    minimum_num = StudentAverage
print("The minimum average is", round(minimum_num,2))
print("The maxiumum average is", round(maximum_num,2))
于 2013-02-19T21:20:32.093 に答える