CreamPuff's HACK LAB

[코딩 연습/C] 6일차 (061~064) 본문

이전 글

[코딩 연습/C] 6일차 (061~064)

CreamPuffx2 2019. 5. 12. 00:28

코딩 연습 출처 : 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[ ] 정수 배열은 작은 값으로 시작해 큰 값으로 배치된다.


오늘은 컴파일러 에러 때문에 많이 실습하지 못해 아쉽다..

컴파일러 에러도 해결하면 좋으련만

스터디 발표 준비 때문에 신경 쓰여서 못하것다

얼른 스터디 준비해야지 ㅠㅠ