[ create a new paste ] login | about

Link: http://codepad.org/7dntfMeW    [ raw code | fork ]

C, pasted on Nov 27:
#include <stdio.h>

int main()
{
	int a[100];
	int i, num;
	int low, high, middle;
	char buf[10];
	
	/* 配列に奇数を挿入して表示 */
	printf("配列aの内容は次のとおりです");
	for(i=0; i<100; i++)
	{
		if(i%10 == 0) printf("\n");
		printf("%3d ",a[i] = i*2+1);
	}

	/* 標準入力から自然数を受け取る */
	printf("\n1~199までの整数を入力してください\n");
	fgets(buf, 11, stdin);
	num = atoi(buf);
	if(num < 1 || num > 199)
	{
		printf("入力された数値が不正または範囲外です\n");
		return 1;
	}
	
	/* 二分探索開始 */
	low = 0;
	high = 99;
	while(low <= high)
	{
		middle = (low + high)/2;
		if(num > a[middle])
			low = middle + 1;
		else if(num < a[middle])
			high = middle - 1;
		else
		{
			printf("探索値 %d はa[%d]と同じ値です\n", num, middle);
			return 0;
		}
	}
	
	printf("配列aの中に %d は見つかりませんでした\n", num);

	return 0;
}


Create a new paste based on this one


Comments: