2013-02-19 2 views
0

저는 파이썬으로 사용자가 수업의 학생 수를 입력하고 각 학생에 대해 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)) 
+0

첫 번째 부분은 첫 번째 for 루프의 마지막 두 줄을 끝내기 만하면됩니다. –

+0

그럴 경우 올바른 평균을 제공하지는 않지만 최종 학생의 평균을 학생 수로 나눈 값을 제공한다고 생각합니다. – tinydancer9454

답변

2

각 반복마다 값이 재설정되지 않도록 초기화 도구를 루프 외부로 이동했습니다. 최대 및 최소 비교를 루프로 이동하고 최대 및 최소 변수를 바꿨습니다. 각각의 새 값은 각각 값보다 작거나 같았으므로 대신 maximum_num 및 minimum_num을 사용해야했습니다. 현재 계산 된 숫자 대신 총 학생 수를 사용했기 때문에 실행중인 클래스 평균이 너무 낮습니다. 나는 학생의 사용을 숫자 + 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)) 
관련 문제