- 464 名前:デフォルトの名無しさん mailto:sage [2009/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; }
|

|