CreamPuff's HACK LAB
[코딩 연습/C] 6일차 (061~064) 본문
코딩 연습 출처 : https://cafe.naver.com/funcc
※ 아래 내용은 글쓴이 개인적으로 공부하며 끄적인 것으로,
정확한 정보가 아닐 수 있습니다.
정확한 정보는 카테고리 'C'나,
전문 서적을 참고하세요!
061. 정수 배열 초기화
"a[ ] 처럼 배열의 공간 개수를 적지 않아도 자동으로 계산된다."
062. 정수 배열 입출력
"배열은 항상 0부터 카운트된다."
063. 정수 배열 입출력 (고급)
'do ~ while'문 등장!
생각보다 인간의 언어와 비슷한 사고방식의 문법이다.
* do { X } while ( Y ) : X를 반복한다. Y일 때까지
즉, 위 소스코드의 do~while 문장을 해석해보면
score[i]에 입력된 값이
0보다 작거나 ( || ) 100보다 클 경우
score[i]에 입력 받는 행위를 반복한다.
if문과 do~while문을 적절히 활용해 0~100점을 입력 받는 재밌는 소스 코드이다.
064. 정수 정렬 (거품 정렬)
21행부터 32행이 가장 중요한 부분!
가장 마지막 실행되는 명령부터 해석하는게 편하더라..
1) 먼저 27~29행을 보면 a[j]와 a[j+1]을 맞교환 하고 있다.
즉 정수 배열 내 값을 정렬하고 있다.
어떤 기준으로?
2) 25행을 보면 맞교환 규칙을 보여준다.
a[j]가 a[j+1]보다 클 경우!
1)과 2)를 통한 결론
=> a[j] 값이 a[j+1]값보다 클 경우 두 값을 맞교환한다.
즉, 큰 값을 나중(?) 배열로 보낸다.
3) 23행은 if문과 맞교환 규칙을 반복한다.
먼저 첫번째 반복문에 의하면 j가 0일 때부터 4일 때까지 반복한다.
즉, a[0]과 a[1]을 비교하여 if문 실행
a[1]과 a[2]를 비교하여 if문 실행
a[2]와 a[3]을 비교하여 if 문 실행
a[3]과 a[4]를 비교하여 if문 실행
이렇게 순차적으로 진행할 경우 a[4]에는 정수 배열 중 가장 큰 값이 배치되게 된다.
4) 21행은 위의 for문을 반복한다.
이 반복문은 i가 0일 때부터 4일 때까지 반복한다.
이에 따라 3)의 j반복문의 횟수가 정해진다.
23행의 반복문은 첫 번째에 0~4 반복
두 번째에 0~3 반복
세 번째에 0~2 반복
네 번째에 0~1 반복
** 결과적으로 **
a[ ] 정수 배열은 작은 값으로 시작해 큰 값으로 배치된다.
오늘은 컴파일러 에러 때문에 많이 실습하지 못해 아쉽다..
컴파일러 에러도 해결하면 좋으련만
스터디 발표 준비 때문에 신경 쓰여서 못하것다
얼른 스터디 준비해야지 ㅠㅠ
'이전 글' 카테고리의 다른 글
[코딩 연습/C] [036~060] 컴파일러 에러로 인한 출력 오류로 skip (0) | 2019.05.12 |
---|---|
[코딩 연습/C] 5일차 (026~035) (0) | 2019.05.10 |
[코딩 연습/C] 4일차 (021~025) (0) | 2019.05.08 |
[코딩 연습/C] 3일차 (011~020) (0) | 2019.05.07 |
[코딩 연습/C] 2일차 (006~010) (0) | 2019.05.06 |