본문 바로가기
개념/혼자 공부하는 C언어

chapter 14) 학생 3명의 네 과목 총점과 평균을 구하는 프로그램

by kiseno 2024. 9. 6.
728x90
반응형
SMALL
#include <stdio.h>

int main(void){
    int score[3][4];
    int total;
    double avg;
    int i , j;

    for (i = 0; i<3; i++){
        printf("four score input : ");
        for (j = 0; j < 4; j++){
            scanf("%d", &score[i][j]);
        }
    }

    for (i = 0; i< 3; i++){
        total = 0;
        for (j =0; j<4; j++){
            total += score[i][j];
        }
        avg = total / 4.0;
        printf("total : %d\n, avg : %.2lf\n", total, avg);
    }
    return 0;
}

 

### 과정 설명

- **점수 입력**:
  - 2중 for 루프를 사용하여 사용자로부터 3명의 학생 각각에 대한 4개의 과목 점수를 입력 받습니다. 외부 루프(`i`)는 학생을, 내부 루프(`j`)는 각 학생의 과목 점수를 나타냅니다.
  - `scanf("%d", &score[i][j]);`를 사용하여 각 점수를 `score` 배열에 저장합니다.

- **총점과 평균 계산 및 출력**:
  - 다시 2중 for 루프를 사용하여 각 학생의 점수를 순회합니다. 외부 루프는 학생을, 내부 루프는 각 학생의 과목 점수를 처리합니다.
  - 내부 루프에서 각 학생의 과목 점수를 `total`에 누적합니다.
  - 내부 루프가 종료된 후, `total`을 과목 수(4)로 나누어 평균 점수를 계산합니다. 평균은 `double` 타입으로 계산되어 소수점 이하의 정확도를 유지합니다.
  - 각 학생의 총점과 평균 점수를 출력합니다. 평균 점수는 소수점 둘째 자리까지 출력됩니다.

### 주의사항

- 이 코드는 표준 입력(`scanf`)을 사용하여 사용자로부터 데이터를 받습니다. 프로그램을 실행하는 환경에 따라서는 사용자 입력을 제대로 받지 못할 수 있습니다(예: 온라인 컴파일러 사용 시).
- `scanf` 함수 사용 시 입력 버퍼에 남은 개행 문자가 다음 입력을 방해하지 않도록 주의가 필요합니다. 이 코드에서는 `scanf`를 직접적으로 다루는 방법을 보여줍니다만, 실제 사용 시에는 입력 처리 방식을 더 세심하게 고려할 필요가 있습니다.

### 프로그램 종료

- `return 0;`은 프로그램이 성공적으로 종료되었음을 나타냅니다.

728x90
반응형
LIST