--- title: アルゴリズム author: kazu634 date: 2008-05-08 wordtwit_post_info: - 'O:8:"stdClass":13:{s:6:"manual";b:0;s:11:"tweet_times";i:1;s:5:"delay";i:0;s:7:"enabled";i:1;s:10:"separation";s:2:"60";s:7:"version";s:3:"3.7";s:14:"tweet_template";b:0;s:6:"status";i:2;s:6:"result";a:0:{}s:13:"tweet_counter";i:2;s:13:"tweet_log_ids";a:1:{i:0;i:3995;}s:9:"hash_tags";a:0:{}s:8:"accounts";a:1:{i:0;s:7:"kazu634";}}' categories: - C - Programming ---
研修でやったのをCで実装するよ。
#include <stdio.h> int main(void); int search(int a[], int num_a, int key); void prt_int_array(const int a[], int num_a); void prt_int_array(const int a[], int num_a) { int i; for (i = ;i < num_a;i++) { printf ("a[%d] --> %d\n", i, a[i]); } } int search(int a[], int num_a, int key) { int p = ; /* keyが見つかった配列の添え字 */ int i = ; /* 作業用 */ /* 番兵をセットするね */ a[num_a - 1] = key; /* 見つかるまで繰り返すよ */ while (p == ) { printf ("Now Searching array[%d] --> %d\n", i, a[i]); if (a[i] == key) { p = i; } else { i++; } } /* 番兵なら見つからなかったことにする */ if (i == num_a - 1) p = -1; return(p); } int main(void) { int array[8] = {, 1, 2, 3, 4, 5, 6}; int num_array = sizeof(array) / sizeof(array[]); prt_int_array(array, num_array); printf ("\n"); printf ("Searching Begins:\n"); printf ("9 is a[%d]\n", search(array, num_array, 9)); return(); }