모두의 코드
모두의 코드

총 42 개의 강의로 준비된 씹어먹는 C 언어 강좌를 통해 C 언어의 처음부터 끝까지 배우실 수 있습니다! 특히 악명 높은 C 언어의 포인터나, 어려운 개념들을 충실히 짚고 넘어갑니다.

이 강좌는 2010년에 완결되었지만, 지속적으로 개선 및 보완하고 있습니다.

C 언어 문법을 아시는 분들이라면, 씹어먹는 C++ 강좌를 통해 C++ 기초 부터 최근의 C++ 17 까지 모든 내용을 배우실 수 있습니다. C 언어와 C++ 의 기본적인 문법이 비슷하기 때문에, C 언어를 어느 정도 아는 독자를 가정하여 쓰여져 있습니다.

이 강좌는 2020년에 완결되었고 총 50 개의 강좌가 준비되어 있습니다.

사이트 내에서 검색 하기
C 언어 레퍼런스
표준 입출력 라이브러리 stdio.h
문자열 관련 라이브러리 string.h
시간 관련 라이브러리 time.h
C ++ 레퍼런스
문자열 라이브러리 string
알고리즘 라이브러리 algorithm
최근 댓글
1번 문제를 풀기는 했는데, 함수를 사용해서 그런지 정렬하는 부분이 약간 어렵게 느껴지네요. sort_score 함수 부분을 조금 더 깔끔하게 작성할 수도 있을까요? #include <stdio.h> void input_score(int (*exam)[4]); void sort_score(int (*exam)[4], double *avg); void print_score(int (*exam)[4], double *avg, double tot_avg); int main(int argc, const char * argv[]) { int exam[5][4]; int i, j, sum, tot = 0; double avg[5]; double tot_avg; input_score(exam); for (i = 0; i < 5; i++) { sum = 0; for (j = 1; j < 4; j++) { sum += exam[i][j]; } avg[i] = sum / 3.0; } sort_score(exam, avg); for (i = 0; i < 5; i++) tot += avg[i]; tot_avg = tot / 5.0; print_score(exam, avg, tot_avg); return 0; } void input_score(int (*exam)[4]) { int i; for (i = 0; i < 5; i++) { exam[i][0] = i + 1; printf("%d번 학생의 성적을 입력해주세요(국어 영어 수학) : ", i + 1); scanf("%d%d%d", &exam[i][1], &exam[i][2], &exam[i][3]); } } void sort_score(int (*exam)[4], double *avg) { int i, j, k; for (i = 0; i < 5; i++) { for (j = i + 1; j < 5; j++) { if (avg[i] < avg[j]) { for (k = 0; k < 4; k++) { int temp = exam[i][k]; exam[i][k] = exam[j][k]; exam[j][k] = temp; } int tem = avg[i]; avg[i] = avg[j]; avg[j] = tem; } } } } void print_score(int (*exam)[4], double *avg, double tot_avg) { int i; printf(" 번호 | 국어 | 수학 | 영어 | 평균 | 합격여부 |\n"); for (i = 0; i < 5; i++) { printf("%4d%8d%8d%8d%8.1lf", exam[i][0], exam[i][1], exam[i][2], exam[i][3], avg[i]); if (avg[i] >= tot_avg) printf(" 합격\n"); else printf(" 불합격\n"); } }
뜯갓 01.20