読者です 読者をやめる 読者になる 読者になる

個人的自由ノート

ふと自分が気になった事を書いてます

C言語でデータ構造とアルゴリズム

最初から少し飛ばして線形探索法からやってます。この本、そこまで難しくはないですね。(後から難しくなりそうだけど・・・。)

/* 線形探索 */
#include <stdio.h>
#include <stdlib.h>

int search(const int a[], int n, int key) {
  int i = 0;
  while(1) {
    if(i == n)
      return -1;
    if(a[i] == key)
      return i;
    i++;
  }
}

int main(void) {
  int i, nx, ky, idx;
  int *x;

  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);

  idx = search(x, nx, ky);

  if(idx == -1)
    puts("探索に失敗しました。");
  else
    printf("%dはx[%d]にあります。\n", ky, idx);
  
  free(x);

  return 0;
}