線形探索

C言語

番兵なし

#include <stdio.h>
#include <stdlib.h>
#define N 10
int main(void)
{
	int d[N];
	// データ作成(乱数)
	for(int i = 0; i < N; i++){
		d[i] = rand() % 100;
		printf("%3d ", d[i]);
	}

  	// キーを設定
	int key;
	printf("キーを入力:");
	scanf("%d", &key);

	// 線形探索
	int i = 0;
	while(i < N){
  		if(d[i]==key) break;
		i++;
	}
	if(i < N){
  		printf("%dは見つかった\n", key);
	}else{
  		printf("%dは見つからない\n", key);
	}

	return 0;
}

番兵あり

#include <stdio.h>
#include <stdlib.h>
#define N 10
int main(void)
{
	int d[N + 1];
	// データ作成(乱数)
	for(int i = 0; i < N; i++){
		d[i] = rand() % 100;
		printf("%3d ", d[i]);
	}

	// キーを設定
	int key;
	printf("キーを入力:");
	scanf("%d", &key);
  	d[N] = key;

	// 線形探索
	int i = 0;
	while(d[i] != key){
		i++;
	}
	if(i < N){
  		printf("%dは見つかった\n", key);
	}else{
  		printf("%dは見つからない\n", key);
	}

	return 0;
}