C/C++の宿題片付けます 124代目
■ このスレッドは過去ログ倉庫に格納されています
0464デフォルトの名無しさん
2009/03/22(日) 15:56:15>>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;
}
■ このスレッドは過去ログ倉庫に格納されています