Page 75 - Do it! 자료구조와 함께 배우는 알고리즘(C 언어, 3쇄)
P. 75
Q3 앞의 문제(실습 2-5)를 수정하여 키의 평균을 구하는 프로그램을 작성하세요.
연습
문제
double aveof(const int a[], int n);
평균을 구하는 과정은 위의 함수로 구현하세요. 정수가 아닌 실수로 평균값을 구합니다.
Q4 실습 2-6은 키를 난수로 생성한 후 키의 최댓값을 구하는 프로그램입니다. 키와 함께 사람
수도 난수로 생성하도록 수정하여 프로그램을 작성하세요.
사람 수는 5 이상 20 이하의 난수로 입력하세요.
Q5 오른쪽처럼 배열 요소를 역순으로 정렬하는 과정을 일일이 5 10 73 2 -5 42
출력하도록 실습 2-7을 수정한 프로그램을 작성하세요. a[0]과 a[5]를 교환합니다.
42 10 73 2 -5 5
ary_reverse 함수를 수정하세요. a[1]과 a[4]를 교환합니다.
42 -5 73 2 10 5
a[2]와 a[3]을 교환합니다.
42 -5 2 73 10 5
역순 정렬을 종료합니다.
Q6 실습 2-8의 card_convr 함수를 수정하여 배열의 맨 앞쪽에 아랫자리가 아니라 윗자리를
저장하는 card_conv 함수를 작성하세요.
int card_conv(unsigned x, int n, char d[]);
Q7 앞의 프로그램을 기초로 오른쪽처럼 기수 변환 과 10진수를 기수 변환합니다.
정을 상세히 출력하는 프로그램을 작성하세요. 변환하는 음이 아닌 정수 : 58
어떤 진수로 변환할까요?(2-36) : 2
그림 2-11, 그림 2-13에서는 나눗셈의 나머지를 몫의 오른쪽
에 출력했지만 여기서는 나머지를 나누어지는 수의 오른쪽에 출력 2 | 58 … 0
합니다. + ----------
2 | 29 … 1
+ ----------
… 중략 …
2 | 1 … 1
+ ----------
0
2진수로 111010입니다.
한 번 더 할까요?(1 … 예/0 … 아니오) : 0
Q8 배열 b의 모든 요소를 배열 a에 복사하는 함수를 작성하세요(n은 요소 개수입니다).
void ary_copy(int a[], const int b[], int n);
Q9 배열 b의 모든 요소를 배열 a에 역순으로 복사하는 함수를 작성하세요(n은 요소 개수입니다).
void ary_rcopy(int a[], const int b[], int n);
02• 기본 자료구조 75