Angular, Blockchain, Science とか

Angular, Blockchain, Science全般 の情報を主に書いていきます。

線形探索 C言語 アルゴリズム

アルゴリズムをちまちま復習してます。ただの線形探索です。

#include <stdio.h>
#define MAX 10

struct student {
  int num;
  char name[10];
};

struct student St[MAX]={{2, "Takagi"}, {6,"Takahasi"}, {32, "Hori"}, {10, "Azuma"}, {5, "Sasaki"}};

int Num=5;

void main()
{
  int i;
  int tgt_key;
  
  while(1){
    printf("Please input a key. \n");
    if(scanf("%d", &tgt_key)==EOF)
      break;
    if((i=search(tgt_key))!=-1)
      printf("Found! Num=%d, Name=%s, \n", St[i].num, St[i].name);
    else
      printf("Not found.\n");
  }
}

int search(int target)
{
  int i=0;
  while(i<Num && target!=St[i].num)
    ++i;
  if(i<Num)
    return i;
  else
    return -1;
}