0715 스키마에듀 c언어 자료구조 수업
2023. 7. 15. 00:35ㆍ스키마에듀 c언어 수업
728x90
// bsearch 함수를 사용해 오름차순으로 정렬된 배열을 검색
#include <stdio.h>
#include <stdlib.h>
// 정수를 비교하는 함수(오름차순)
int int_cmp(const int *a, const int *b){
if(*a < *b){
return -1; //왼쪽 반토막으로
}
else if(*a > *b){
return 1; //오른쪽 반토막으로
}
else{
return 0; //a == b
}
}
int main(void){
int nx, ky; //요소개수, 탐색값
puts("bsearch 함수를 사용하여 검색");
printf("요소 개수: "); scanf("%d", &nx);
int *x = (int*)calloc(nx, sizeof(int)); //길이가 nx인 int형 배열 x 생성
printf("오름차순으로 입력하세요.\n");
printf("x[0]: ");
scanf("%d", &x[0]);
for(int i=1; i<nx; i++){
do{
printf("x[%d]: ",i);
scanf("%d", &x[i]);
}while(x[i] < x[i-1]); //배열 앞의 값보다 작으면 다시 입력
}
printf("검색값: ");
scanf("%d", &ky);
int *p = bsearch(
&ky,
x,
nx,
sizeof(int),
(int(*)(const void *, const void *)) int_cmp
);
if(p == NULL){
puts("검색 실패");
}else{
printf("%d(은)는 x[%d]에 있습니다.\n", ky, (int)(p-x));
}
free(x);
return 0;
}
'스키마에듀 c언어 수업' 카테고리의 다른 글
스키마에듀 백준 0729 (0) | 2023.07.25 |
---|---|
스키마에듀 수업 0721 (0) | 2023.07.21 |
스키마에듀 수업 0713 백준 (0) | 2023.07.13 |
0708 스키마에듀 수업 (0) | 2023.07.07 |
스키마에듀 수업 0708 백준 (1) | 2023.07.07 |