C/C++の宿題片付けます 124代目
at TECH
464:デフォルトの名無しさん
09/03/22 15:56:15
>>441 さん
>>459 % ./a.out <data でファイル入力[Enter]
#include <stdio.h>
int BinarySearch(void);
int main(void) {
while(!BinarySearch()); return 0;
}
int BinarySearch(void) {
int n=0, *data, key=0, begin=0, end, mid, i;
if(scanf("%d", &n) != 1) return 1;
if(n == 0) return 0;
if(n < 0) return 2;
if((data = (int *)malloc(sizeof(int) * n)) == NULL) return 3;
for(i = 0; i < n; i++)
if(scanf("%d", &(data[i])) != 1) {free(data); return 1;}
if(scanf("%d", &key) != 1) {free(data); return 1;}
for(i = 1, end = n-1; begin < end; i++){
mid = (begin + end) / 2;
if(data[mid] < key)
begin = mid + 1;
else
end = mid - 1;
}
printf("%d\n", i);
free(data); return 0;
}
次ページ続きを表示1を表示最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5407日前に更新/195 KB
担当:undef