#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;`은 프로그램이 성공적으로 종료되었음을 나타냅니다.
'개념 > 혼자 공부하는 C언어' 카테고리의 다른 글
chapter 14) 2차원 char 배열에 동물 이름을 초기화하는 방법 (0) | 2024.09.08 |
---|---|
chapter 14) 2개 반 3명 학생의 4과목 점수를 저장하는 3차원 배열 (0) | 2024.09.07 |
chapter 14) 포인터 배열로 여러 개의 문자열 출력 (0) | 2024.09.05 |
chapter 14) 여러 개의 1차원 배열을 2차원 배열로 사용 (0) | 2024.09.04 |
chapter 14) 여러 개의 동물 이름을 입출력하는 프로그램 (0) | 2024.09.03 |