Algorithm/Do it

[자료구조와 함께 배우는 알고리즘 입문 - C언어 편] 3장 검색 연습문제 Q1 답안 p.113

Bonita SY 2019. 10. 16. 21:02
728x90
반응형

Q1. 실습 3-3의 search 함수를 while문이 아니라 for문을 사용하여 수정한 프로그램을 작성하세요.


답안)

#include <stdio.h>
#include <stdlib.h>

int search(int a[], int n, int key) {
  int i = 0;
  a[n] = key;
  for(i; i<=n; i++) {
    if(a[i] == key)
      break;
  }
  return i == n ? -1 : i;
}

int main(void) {
  int i, nx, ky, idx;
  int *x;
  puts("선형 검색(보초법)");
  printf("요소 개수 : ");
  scanf("%d", &nx);
  x = calloc(nx+1, sizeof(int));
  for(i=0; i<nx; i++) {
    printf("x[%d] : ", i);
    scanf("%d", &x[i]);
  }
  printf("검색값 : ");
  scanf("%d", &ky);
  idx = search(x, nx, ky);
  if(idx == -1)
    puts("검색에 실패했습니다.");
  else
    printf("%d(은)는 x[%d]에 있습니다.\n", ky, idx);
  free(x);
  return 0;
}

 

728x90
반응형