728x90
반응형
Q6. 요소의 값이 내림차순으로 정렬된 long형 배열에서의 검색을 bsearch 함수를 사용하여 프로그램을 작성하세요.
답안)
#include <stdio.h>
#include <stdlib.h>
int long_cmpr(const long *a, const long *b)
{
if(*a < *b)
return 1;
else if (*a > *b)
return -1;
else
return 0;
}
int main(void)
{
int i, nx;
long ky, *x, *p;
puts("bsearch 함수를 사용하여 검색");
printf("요소 개수 : ");
scanf("%d", &nx);
x = calloc(nx, sizeof(long));
printf("x[0] : ");
scanf("%ld", &x[0]);
for(i=1; i<nx; i++) {
do {
printf("x[%d] : ", i);
scanf("%ld", &x[i]);
} while(x[i] > x[i-1]);
}
printf("검색값 : ");
scanf("%ld", &ky);
p = bsearch(&ky, x, nx, sizeof(long), (long(*)(const void *, const void *))long_cmpr);
if(p == NULL)
puts("검색에 실패했습니다.");
else
printf("%ld는(은) x[%ld]에 있습니다.\n", ky, (long)(p-x));
free(x);
return 0;
}
실행결과)
sy@sy:~/algorithm/doit/chap03$ ./q6
bsearch 함수를 사용하여 검색
요소 개수 : 3
x[0] : 79
x[1] : 68
x[2] : 57
검색값 : 57
57는(은) x[2]에 있습니다.
728x90
반응형
'Algorithm > Do it' 카테고리의 다른 글
4장 스택 실습과 연습 문제 풀이 (0) | 2020.12.21 |
---|---|
[자료구조와 함께 배우는 알고리즘 입문 - C언어 편] 3장 검색 연습문제 Q5 답안 p.115 (0) | 2019.10.16 |
[자료구조와 함께 배우는 알고리즘 입문 - C언어 편] 3장 검색 연습문제 Q3 답안 p.115 (0) | 2019.10.16 |
[자료구조와 함께 배우는 알고리즘 입문 - C언어 편] 3장 검색 연습문제 Q1 답안 p.113 (0) | 2019.10.16 |
[자료구조와 함께 배우는 알고리즘 입문 - C언어 편] 2장 기본 자료구조 연습문제 Q12 답안 p.93 (0) | 2019.10.12 |