728x90
반응형
Q3. 요소의 개수가 n인 배열 a에서 key와 일치하는 모든 요소의 인덱스를 배열 idx의 맨 앞부터 순서대로 저장하고, 일치한 요소의 개수를 반환하는 함수를 작성하세요. 예를 들어, 요소의 개수가 8인 배열 a의 요소가 {1, 8, 2, 8, 4, 6, 7, 9 } 이고 key가 9면 배열 idx에 {1, 3, 7 }을 저장하고 3을 반환합니다.
int search_idx(const int a[], int n, int key, int idx[]);
답안)
#include <stdio.h>
#include <stdlib.h>
int search_idx(const int a[], int n, int key, int idx[]) {
int i = 0;
int j = 0;
for(i; i<n; i++) {
if(a[i] == key) {
idx[j++] = i;
}
}
return &idx;
}
int main(void) {
int i, nx, ky, idx;
int *x;
int *y;
puts("선형 검색");
printf("요소 개수 : ");
scanf("%d", &nx);
x = calloc(nx, sizeof(int));
for(i=0; i<nx; i++) {
printf("x[%d] : ", i);
scanf("%d", &x[i]);
}
printf("검색값 : ");
scanf("%d", &ky);
y = search_idx(x, nx, ky, y);
printf("%d\n", sizeof(y)/sizeof(y[0]));
free(x);
return 0;
}
실행결과)
sy@sy:~/algorithm/doit/chap03$ ./q3
선형 검색
요소 개수 : 7
x[0] : 6
x[1] : 4
x[2] : 3
x[3] : 2
x[4] : 1
x[5] : 4
x[6] : 3
검색값 : 3
2
728x90
반응형
'Algorithm > Do it' 카테고리의 다른 글
[자료구조와 함께 배우는 알고리즘 입문 - C언어 편] 3장 검색 연습문제 Q6 답안 p.128 (0) | 2019.11.04 |
---|---|
[자료구조와 함께 배우는 알고리즘 입문 - C언어 편] 3장 검색 연습문제 Q5 답안 p.115 (0) | 2019.10.16 |
[자료구조와 함께 배우는 알고리즘 입문 - C언어 편] 3장 검색 연습문제 Q1 답안 p.113 (0) | 2019.10.16 |
[자료구조와 함께 배우는 알고리즘 입문 - C언어 편] 2장 기본 자료구조 연습문제 Q12 답안 p.93 (0) | 2019.10.12 |
[자료구조와 함께 배우는 알고리즘 입문 - C언어 편] 2장 기본 자료구조 연습문제 Q10 답안 p.76 (0) | 2019.10.09 |