학생들의 몸무게에 따른 반별 평균 및 전체 평균 계산

  • 2 minutes to read

다음 C 언어 프로그램은 학생들의 반, 번호, 몸무게를 입력 받아 반별 평균 및 전체 평균을 계산하고 출력합니다. 프로그램의 구조는 다음과 같습니다.

  1. 구조체를 설계하여 학생 정보를 저장합니다.
  2. 반, 번호, 몸무게를 입력 받아 구조체 배열에 저장합니다.
  3. 반별 평균과 전체 총점을 계산합니다.
  4. 각 반의 학생 정보, 반별 평균, 전체 평균을 출력합니다.

프로그램의 소스 코드는 다음과 같습니다.

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>

#define N 4

// [0] 구조체 설계
struct Record {
    int Class;      // 반
    int Num;        // 번호
    float Weight;   // 몸무게
};

int main(void) {
    // [1] Init
    int i = 0;           // 루프
    int count = 0;        // 카운트 체크
    int classNum = 1;     // 1~9반 처리
    float avg = 0;        // 반총점/반평균
    int tot = 0;          // 전체총점
    float avgTotal = 0;   // 전체평균
    struct Record objRecord[N]; // 구조체
    // [2] Input
    for (i = 0; i < N; i++) {
        printf("반 : _\b");
        scanf("%d", &objRecord[i].Class);
        printf("번호 : _\b");
        scanf("%d", &objRecord[i].Num);
        printf("몸무게 : _\b");
        scanf("%f", &objRecord[i].Weight);
    }
    // [3] Process
    for (i = 0; i < N; i++) {
        // [i] 반별 평균 : 1~9반
        // [ii] 전체 총점
        tot += objRecord[i].Weight;
    }
    // [iii] 전체 평균
    avgTotal = tot / N;
    printf("\n");
    // [4] Output
    printf("반 번호 몸무게\n");
    for (classNum = 1; classNum <= 9; classNum++) {
        for (i = 0; i < N; i++) {
            if (objRecord[i].Class == classNum) {
                printf("%d %d %.1f\n"
                    , objRecord[i].Class
                    , objRecord[i].Num
                    , objRecord[i].Weight
                );
                avg += objRecord[i].Weight;
                count++;
            }
        }
        for (i = 0; i < N; i++) {
            if (objRecord[i].Class == classNum) {
                printf("%d반 평균 : %.1f\n"
                    , classNum, (avg / count));
                break;
            }
        }
        avg = 0;
        count = 0;
    }
    // [!] 전체평균
    printf("전체평균 : %.1f\n", avgTotal);

    return 0;
}

예시 실행결과는 다음과 같습니다.

반 : 1
번호 : 1
몸무게 : 100
반 : 1
번호 : 2
몸무게 : 70
반 : 2
번호 : 1
몸무게 : 75
반 : 2
번호 : 2
몸무게 : 60

반 번호 몸무게
1 1 100.0
1 2 70.0
1반 평균 : 85.0
2 1 75.0
2 2 60.0
2반 평균 : 67.5
전체평균 : 76.0

이 프로그램은 학생들의 몸무게를 입력 받아 각 반별 평균 몸무게와 전체 평균 몸무게를 계산해 출력하는데 사용할 수 있습니다. 이를 통해 교육자들은 학생들의 건강 상태를 확인하고 관리할 수 있습니다.

더 깊이 공부하고 싶다면
DevLec에서는 실무 중심의 C#, .NET, ASP.NET Core, Blazor, 데이터 액세스 강좌를 단계별로 제공합니다. 현재 수강 가능한 강좌 외에도 더 많은 과정이 준비되어 있습니다.
DevLec.com에서 자세한 커리큘럼을 확인해 보세요.
DevLec 공식 강의
C# Programming
C# 프로그래밍 입문
프로그래밍을 처음 시작하는 입문자를 위한 C# 기본기 완성 과정입니다.
ASP.NET Core 10.0
ASP.NET Core 10.0 시작하기 MVC Fundamentals Part 1 MVC Fundamentals Part 2
웹 애플리케이션의 구조와 MVC 패턴을 ASP.NET Core로 실습하며 익힐 수 있습니다.
Blazor Server
풀스택 웹개발자 과정 Part 1 풀스택 웹개발자 과정 Part 2 풀스택 웹개발자 과정 Part 3
실무에서 바로 활용 가능한 Blazor Server 기반 관리자·포털 프로젝트를 만들어 봅니다.
Data & APIs
Entity Framework Core 시작하기 ADO.NET Fundamentals Blazor Server Fundamentals Minimal APIs
데이터 액세스와 Web API를 함께 이해하면 실무 .NET 백엔드 개발에 큰 도움이 됩니다.
VisualAcademy Docs의 모든 콘텐츠, 이미지, 동영상의 저작권은 박용준에게 있습니다. 저작권법에 의해 보호를 받는 저작물이므로 무단 전재와 복제를 금합니다. 사이트의 콘텐츠를 복제하여 블로그, 웹사이트 등에 게시할 수 없습니다. 단, 링크와 SNS 공유, Youtube 동영상 공유는 허용합니다. www.VisualAcademy.com
박용준 강사의 모든 동영상 강의는 데브렉에서 독점으로 제공됩니다. www.devlec.com